code: function download(o) {
      return new Promise(function (resolve, reject) {
          var promise;
          if (o.file.length > 0) {
              promise = generateFileHashes(o, [o.file]).catch(function (err) {
                  reject(err);
              });
          } else {
              promise = (0, _utils.glob)(o.files).then(function (files) {
                  return generateFileHashes(o, files);
              }).catch(function (err) {
                  reject(err);
              });
          }
          promise.then(function (fileHashes) {
              return checkSubtitleFiles(o, fileHashes);
          }).then(function (fileHashes) {
              return makeHttpRequests(o, fileHashes);
          }).then(function (filesWithHash) {
              return parseHttpResponse(o, filesWithHash);
          }).then(function (responses) {
              resolve(responses);
          }).catch(function (err) {
              reject(err);
          });
      });
  }
docs: Main download function. Responsible for downloading subtitles from Napiprojekt server
  Steps:
  - find files provided in options
  - generate partial MD5 hash for each file
  - check if subtitles already exists. Rename old subtitles file if one exist
  - call Napiprojekt server
  - parse XML response to JSON format and save subtitles to disk
  
  @param {NapijsOptions} o options
  @returns {Promise}