Java-compatible (de)serialization of TreeMap, ArrayList and Number

In my ongoing effort to get [Sezpoz](https://github.com/jglick/sezpoz) to work properly with Avian, I needed the data structures serialized by Sezpoz' annotation processing to be deserialized correctly. As the annotation processing takes place during compilation with javac, the data structures are serialized using Java according to the serialization protocol specified in the Java Language Specification (JLS).

For now, I punted with the exact specifics of auto-generating a ```serialVersionUID``` if the class to be serialized has none. Instead, I just copied the value I found in the serialized data and made that the ```serialVersionUID``` of the respective classes I needed to deserialize.

Please let me know if you'd rather have a correct auto-generation of the serial version UID (I figure it is probably some kind of hashing of the serializable classes and all their direct and indirect serializable superclasses). Otherwise, I'd be happy to leave the JLS in the shelf for a while.