Added an implementation of the iterator protocol for `seq`

Because of how ES6 iterators work, in order to support the
`for..of` syntax sugar nicely we have to implement the `next`
method on the `seq` object itself. This method has side
effects, but I figure it's a small price to pay for syntactic
sugar.

An argument can (rightly) be made that these small prices we
pay for having nice things eventually turn into balls of mud,
which is why we can't have nice things. Maybe that's so, and
maybe it'd be better to implement `next` in a separate
function or as the result of an iterator property on `seq`.
([See discussion][it].)

That said, syntactic smells are also smells, and I reckon the
only winning move in this game is not to play. Since that's
too late I figure what the heck – let's do this.

As to the perhaps odd implementation of `next`, where the
iterator rewinds itself after running a course, is such that
`seq` objects can be used in multiple `for..of` statements.
For more on that, please refer to a [discussion I started on
es-discuss][es-discuss] and the [bug] that was filed as a
result.

[it]: https://github.com/mstade/funkis/pull/4#issuecomment-39681094
[es-discuss]: https://mail.mozilla.org/pipermail/es-discuss/2014-April/036874.html
[bug]: https://bugs.ecmascript.org/show_bug.cgi?id=2606