Added ProtobufEncoderConfig struct with an option to IncludeFraming

This PR adds a config struct to `ProtobufEncoder` that allows setting an optional `IncludeFraming` parameter. When set to true (the default) `ProtobufEncoder` works as it does now and calls `EncodeMessageStream` to encode the message. When set to false `EncodeMessage` will be used to encode the message.

This PR fixes #902.
Need to remove the last sentence in this paragraph, not only because it has a copy/paste typo but also because it's no longer accurate.