Use injections from OverlayImpl in PeerImp
use cluster state in Slot instead of PeerImp
Refactor ProtocolStream:
* Rename class
* Remove handler state variable
* Use template instead of abstract class for polymorphism
* API processes one message at a time instead of many
* Remove error_code from the ProtocolHandler concept requirements
[FOLD] Remove abstract interface
[FOLD] de-inline and tidy
[FOLD] only process one message at a time in ProtocolStream
[FOLD] reformat dispatch switch
[FOLD] break message loop on socket closure
[FOLD] Return void from protocol message handlers
[FOLD] style, rename members
[FOLD] Move protocolMessageName to ProtocolStream
[FOLD] reformat invoke
Calculations for protocol message type and size:
Type and size can be calculated from an iterator
range or a buffer sequence.
Add ProtocolInputStream:
This implements Google protocol buffers ZeroCopyInputStream
around a ConstBufferSequence.
[FOLD] Add invokeProtocolMessage
[FOLD] ProtocolInputStream
[FOLD] Replace message_stream with a free function