Inject collaborators in DefaultExchangeActor to use the BTC network

In order to make DefaultExchangeActor to broadcast transactions, it should
have a TransactionBroadcaster object at hand to do that. This change prepares
the actor to receive such collaborator as a dependency injection.
Define the messages for transaction publishing in BlockchainActor

Define the case classes that describes the messages used by a blockchain actor
in order to publish a transaction to the Bitcoin network.
Implement transaction publishing messages in DefaultBlockchainActor

Implement the handling of transaction publishing messages in
`DefaultBlockchainActor` class. The corresponding unit tests are included.
Merge pull request #213 from apoloval/issues/90

Implement transaction broadcasting feature in BlockchainActor
Exchange payment processor ids during handshake

Make peers communicate their payment processor ids during the handshake
together with the refund transaction.  Rename exchanged messages
accordingly.

Also, fix a bug on PeerHandshakeAccepted: add a missing hashCode method.
Use Both[T] in Exchange
Introduce OngoingExchange class
Move PeerConnection out of PeerInfo
Make Amounts a component of Exchange
Make Exchange and related classes covariant
Use trait inheritance instead of composition for OngoingExchange
Merge pull request #214 from sortega/task/64_order_match

Introduce OngoingExchange
Refurbish deposit validation to allow coinffeine-server to use it
Enforce the buyer-seller order on multisig keys
Merge pull request #215 from sortega/task/64_gap

Refurbish deposit validation to allow coinffeine-server to use it
Add first GUI test and necessary scaffolding
Merge pull request #217 from edrevo/ui-testing

Add first GUI test and necessary scaffolding