Test protobuf versioning

Test that deserializing of data generated by new version can be done
successfully via the old version, and serializing it back preserves
extra data present in the new version.
Exercise BiMap

Wrote test to see if BiMap indeed requires unique value. It does, as
expected.