Remove unused test support class
Introduce DefaultTcpPortAllocator

To help allocating TCP ports for integrated tests avoiding tests
stepping on each other when opening server sockets.  Remove
superseded NetworkTestUtils.
Introduce PeerActor

Make QuoteTest fail because the peer doesn't process QuoteRequest
messages. Also, introduce some infrastructure for matching futures.
Move system package to coinffeine-common
Add parser of peer command line arguments
Introduce PeerSupervisorActor

To have a PeerActor and a ProtoRpcMessageGateway available on the
acceptance tests. Current failure on acceptance test QuoteTest:
cannot forward message QuoteRequest(EUR) to coinffeine://fake:4790/

This can be solved by having an actual broker on the acceptance tests.
Move GatewayProbe to a place to be reused
Merge pull request #105 from sortega/feature/peer

Introduce PeerSupervisorActor and PeerActor
Add an actual broker to the acceptance tests
Add BuyerExchangeActor
Remove SupervisorComponent to simplify testing

Thanks to that we can have a single cake for the acceptance testing.
Merge pull request #107 from sortega/feature/broker

Add an actual broker to the acceptance tests
Extract common ExchangeInfo in tests to a trait
Add scaladoc
Cleanup imports
Merge pull request #108 from edrevo/add-exchange-actor

Add BuyerExchangeActor
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