Serializers and Deserializers using plain InputStream and OutputStream again.

ByteSink/ByteSource and CharSink/CharSource imply that I/O open and close is handled, which isn't true in this design. Perhaps implement convenience methods later, see #40.