Make all messages be transmitted by protobuf RPC

**Description:** make all messages be 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.

Use reflection to check that all public messages can be serialized by the
DefaultProtocolSerialization.

**Testing:** tests were obsessively executing along the changes.