Improve serialization performance

Couple of improvements to the serialization strategy:
- emit the fact that the map is read-only, so we preserve that trait
- write out the size and entries ourselves, not via an intermediate
  HashMap()

The read path now takes these changes into account and resets the
rootupdater after deserialization is done back to null.

Signed-off-by: Robert Varga <robert.varga@pantheon.sk>
Make hash/equality function final

Removes duplicate fields and makes the equivalent methods final. Also
marks things that we take care of as transient, thus allowing us to
reuse the JVM magic in serialization.

Signed-off-by: Robert Varga <robert.varga@pantheon.sk>
Merge pull request #14 from rovarga/serialization-v2

Further improvements to serialization