function Utf8Iterator(upstream) {
	    var _this;

	    _this = _StringIterator.call(this) || this;
	    _this.upstream = upstream;
	    _this.impl = new Utf8IteratorImpl(upstream);
	    return _this;
	  }
Decode a stream of UTF8-encoded byte arrays to a stream of strings.

The byte arrays producetd from the ByteChunkIterator on which this is
called will be interpreted as concatenated.  No assumptions are made about
the boundaries of the incoming chunks, so a multi-byte UTF8 encoding of a
character may span the boundary between chunks.  This naturally happens,
for instance, when reading fixed-size byte arrays from a file.