async exists(remotePath) {
    try {
      if (remotePath === '.') {
        return 'd';
      }
      const info = await this.lstat(remotePath);
      if (info.isDirectory) {
        return 'd';
      } else if (info.isSymbolicLink) {
        return 'l';
      } else if (info.isFile) {
        return '-';
      } else {
        return false;
      }
    } catch (err) {
      if (err.code === errorCode.notexist) {
        return false;
      }
      throw err.custom ? err : this.fmtError(err.message, 'exists', err.code);
    }
  }
@async

Tests to see if an object exists. If it does, return the type of that object
(in the format returned by list). If it does not exist, return false.

@param {string} remotePath - path to the object on the sftp server.

@return {Promise<Boolean|String>} returns false if object does not exist. Returns type of
                  object if it does