unit test for the whole serialization process

Interface Input DataInput anf DataOutput need to be revised, but I left them unchanged
It's a little mess here, just wrap other exceptions into PicklePotException.