Move protocol-specific code out of Connection into IProtocol impls

This keeps support for V0_2, V0_3 / Protobuf, and V0_3 / JSON.