Refactor protocol message parsing:

This replaces the stateful class parser with a stateless free function.
The protocol buffer message is parsed using a ZeroCopyInputStream.

* Invoke method is now a free function.
* Protocol handler doesn't need to derive from an abstract interface
* Only up to one message is processed at a time by the invoker.
* Remove error_code return from the handler's message processing functions.
* Add ZeroCopyInputStream implementation that wraps a BufferSequence.
* Free function parses up to one protocol message and calls the handler.
* Message type and size can be calculated from an iterator
  range or a buffer sequence.

Reviewers: @ximinez, @scottschurr 
Might be worth having a look at ConcatenatingInputStream:
https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.io.zero_copy_stream_impl#ConcatenatingInputStream
https://protobuf.googlecode.com/svn/trunk/src/google/protobuf/io/zero_copy_stream_impl.cc
Which has more parallels to an actual BufferSequence