Creates a transform stream that will delay passing values through according to the given interval.

Note:
Passing and interval of 0 is useful in order to keep any streams in your pipe chain from blocking the
event loop.

@name Floodgate
@function
@param opts {Object} typical TransformStream options (like highWaterMark) and one additional:
- interval: the interval at which to time out passing through values
@return {TransformStream} stream that can be added to a pipe in order to delay values coming through
function Floodgate (opts) {
  if (!(this instanceof Floodgate)) return new Floodgate(opts);

  opts = opts || {};
  Transform.call(this, opts);
  this._interval = opts.interval || 0;
}