function Iterator(sequence) {
    this.sequence = sequence;
    this.index    = -1;
  }
The Iterator object provides an API for iterating over a sequence.

The purpose of the `Iterator` type is mainly to offer an agnostic way of
iterating over a sequence -- either synchronous (i.e. with a `while` loop)
or asynchronously (with recursive calls to either `setTimeout` or --- if
available --- `setImmediate`). It is not intended to be used directly by
application code.

@public
@constructor
@param {Sequence} sequence The sequence to iterate over.