Collection construction

This is a pretty serious API change: Collections and Sequences now have a common construction API which is a much closer mirror of Array and Map/Set ES6 construction methods.

All Sequence subclasses now have `Class()` `Class.from()` and for Indexed or Set Sequences, `Class.of()`.

This results in a few things:

* construction (in `from` or class constructor) now behaves equivalently for Sequences and Iterables.
* `Class(a,b,c)` is now `Class.of(a,b,c)`
* Subclasses no longer need to implement `from` or `of`, simply the constructor.

To ease the transition (i.e. to fail loudly), error message clarity has been added to `fromEntrySeq`