This is an abstraction layer boundary between transport and the rest of the
code. Instead of the protocol version permeating through the code, encapsulate
it in a serialization_format variable.
This is intended to replace all uses of protocol_version outside transport.