function tryDispose (t, disposable, sink) {
  var result = disposeSafely(disposable);
  return isPromise(result)
    ? result.catch(function (e) {
      sink.error(t, e);
    })
    : result
}
Call disposable.dispose.  If it returns a promise, catch promise
error and forward it through the provided sink.
@param {number} t time
@param {{dispose: function}} disposable
@param {{error: function}} sink
@return {*} result of disposable.dispose