A writable map, with a similar behavior as java.util.HashMap.
In addition to the size of key and value writable tuple two additional bytes
are stored to identify the Writable classes. This means that a maximum of
255 different class types can be used for key and value objects.
A binary-id to class mapping is defined in a static block of this class.
However it is possible to use custom implementations of Writable.
For these custom Writables we write the byte id - utf class name tuple
into the header of each MapWritable that uses these types.