Make all messages transmitted by protobuf RPC

To do so replace the MessageSend infrastructure by a more simple one
based on a maker interface PublicMessage that all domain classes that
can be sent to other nodes must extend.  Introduce a ProtocolSerialization
trait that is able to take any PublicMessage and serialize into protobuf
and back into a domain model message.

The protobuf representation of the messages and services is also
simplified. Now there is just one service, the PeerService, with just
one method named SendMessage that takes a CoinffeineMessage. Such
message is just the union of all possible messages.  This will make
the transition to the DHT transport very smooth.

Order message was moved to the messages.brokerage package for
consistency with the other public messages.

This change replaces some `Any` types for `PublicMessage` thus making
the interface with the MessageGateway safer.
Test that all public messages are serializable

Use reflections library to check that all public messages support
roundtrip serialization by means of the DefaultProtocolSerialization.

Also add missing serializations discovered by the new test.
Make all public messages to use objects instead of byte arrays
Make TransactionSerialization package-private
Avoid false alarms on the happy path test

As we are not testing the resubmit timeout we can set up one so long
that doesn't interfere with the behavior under test no matter how
loaded is the test machine.
Merge pull request #109 from sortega/feature/transport_all

Make all messages be transmitted by protobuf RPC