Fully implemented Immutable.js

Signed-off-by: Jesse Dijkstra <jesse@blendle.nl>