Merge pull request #185 from cscott/gh-176

Map.prototype.size and Set.prototype.size should throw TypeError. Closes #176.
Update ArrayIterator to match es6 spec; support iterators in Array.from().

All the iterator functions in the es6 spec now return an object with `value`
and `done` fields.  Update the ArrayIterator implementation to match the
latest spec.

Add an implementation of StringIterator, based on the es6 spec.

Make Array.from() support our shimmed iterator implementations (including
Map, Set, String, and Array).

Closes #182