Changes collections for type-correctness.

Dynamic type-checks were failing in collections.  This was
due to variable-arity parameters not being real collections.
This commit changes JS code generation so that they are
now sequences.

Also adds more methods to strings, although they are not
yet collections.   Makes string iterators inherit from iterator trait,
so that they are Iterators.
Revised libraries.  Made Done the top type.

Removed recursive asString … in Object, and replaced
asDebugString by simple self-request of asString.
Added methodNames method to Types, returning a set
(which thus contains no duplicates).

Added hash as an alternative to hashcode.

Changed asString for list, sequence and dictionary to produce
concise bracketed expressions.