Split into smaller files.

Plus beginnings of immutable-js support.
Some immutable-js tests.