Add versioning field serializer

A version based serializer with backward compatibility (no forward compatibility).

This can be used for scenarios like:

* Already used FieldSerializer to serialize persisted object, but about to add field(s)
* Need light-weighted and simple backward compatible serializer with little overhead, since forward compatibility are not always necessary

Could be int, since `writeVarInt` is used to write the version.