Adding protocol buffers for versioning all objects.
Changing version serialization to use protocol buffers instead of serializing data directly.
Forgot to take into account case where active event was null in immediate committer.
Versioners actually keep track of deltas, not just raw object values.
Deserializer requires an overloaded metadata method to reconstitute
state.
Instead of versioning down to byte arrays, version down to deltas.
ObjectToValueType will be useful when we need to serialize map keys to
their value types for logging their changes.