unit test for the whole serialization process

Interface Input DataInput anf DataOutput need to be revised, but I left them unchanged
For example, field infos should be retrieved from DataInput rather than instance pot