Object immutability

A generic way to split each mutable class into a readonly interface and a mutable interface, like it’s done for List/MutableList is probably a good idea, but I would prefer to see more immutable classes like Guava ImmutableList instead.