Implement the Field#set<PrimitiveType> method family

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Make ObjectOutputStream's constants available to java.io

We will reuse the constants in the upcoming deserialization counterpart.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Implement a rudimentary Java-compatible ObjectInputStream

The Java Language Specification documents the serialization protocol
implemented by this change set:

http://docs.oracle.com/javase/7/docs/platform/serialization/spec/protocol.html#10258

This change is intended to make it easier to use Avian VM as a drop-in
replacement for the Oracle JVM when serializing objects.

The previous serialization code is still available as
avian.LegacyObjectInputStream.

This commit only implements the non-object parts of the deserialization
specification.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
ObjectInputStream: add rudimentary support for objects

This is by no means a complete support for the deserialization compliant
to the Java Language Specification, but it is better to add the support
incrementally, for better readability of the commits.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Test the new, Java-compatible (de)serialization

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
ObjectInputStream: handle TC_REFERENCE

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
ObjectInputStream: handle fields of type String

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Handle SC_WRITE_METHOD in ObjectInputStream

Serializable classes can customize how they are (de)serialized by
implementing the writeObject() / readObject() methods. OpenJDK's TreeMap
is such a class, and it is used in its serialized form by Sezpoz (which
is used in turn by SCIFIO).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
wip