retryLoad(opt_errorMessage) {
    var parseError = function(error) {
      try {
        error = JSON.parse(error);
        if (error['error'] && error['error']['message']) {
          return error['error']['message'];
        }
      } catch (e) {
        // The response isn't JSON.
      }

      return error;
    };

    if (this.retryAttemptCount_ >= this.maxRetries) {
      this.errorMessage_ = parseError(opt_errorMessage);
      this.setStatus(ee.layers.AbstractTile.Status.FAILED);
      return;
    }
    this.cancelLoad();
    setTimeout(goog.bind(function() {
      if (!this.isDisposed()) {
        this.isRetrying_ = true;
        this.startLoad();
        this.isRetrying_ = false;
      }
    }, this), 1000 * Math.pow(2, this.retryAttemptCount_++));
  }
Retries the tile load using exponential backoff. If the maximum number of
attempts has already been reached, then the status is set to failed and the
retry is not attempted.
@param {string=} opt_errorMessage The message of the error that triggered
    the retry, if any.
@package