Refactor of messages of `BlockchainActor`

The message `PublicTransaction` was not used and it has been removed.

In order to have a simpler naming model and line it up with the messages
or other actors, the following messages are renamed.

* `NotifyWhenConfirmed` to `WatchTransactionConfirmation`
* `GetTransactionFor` to `RetrieveTransaction`
* `TransactionFor` to `TransactionFound`
* `TransactionNotFoundWith` to `TransactionFound`
Extend `BitcoinjTest` functionality to fork the blockchain

Add some members to be able to fork the blockchain

* A `chainHead()` getter that returns the blockchain head
* A new signature for `sendToBlockChain()` that receives the parent
block as argument. This may be used to fork the chain.
Implement `DefaultBlockchainActor`

This change provides the default implementation for blockchain actor.
It is able to process the existing messages defined in `BlockchainActor`
and its logic.

An additional message `WatchPublicKey` has been added to
`BlockchainActor` and its logic is implemented in
`DefaultBlockchainActor`. This message is needed in order to have
BitcoinJ as backend, since it cannot observe all the transactions that
are sent to the blockchain but only those that are relevant based
on the addresses of a wallet.
Merge pull request #194 from apoloval/issues/52

Implement `DefaultBlockchainActor`
Use ImmutableTransaction on DefaultHandshake
Introduce exchange and role attributes on Handshake
Make client.Handshake more like common.Handshake

Use ImmutableTransaction and remove the Buyer/SellerHandshake derived
classes.  Also, move some details of DefaultHandshake to make it more
similar to the new implementation by having partial refunds instead of
total refunds.
Merge pull request #195 from sortega/issues/41

Make client.exchange.Handshake and common.exchange.Handshake more similar
Replace validateRefundSignature with signMyRefund
Introduce StepSignatures in client.exchange.Handshake

And replace more implementation details with stuff of common.exchange
Introduce client.handshake.DefaultExchangeProtocol

To make both DefaultHandshake classes almost identical
Remove exchange and role attributes from Handshake
Completely replace client.exchange.Handshake
Merge both DefaultHandshakeTest classes
Rename client.exchange.Exchange to ProtoMicroPaymentChannel
Make exchange and role available on MicroPaymentChannelActor
Merge pull request #199 from sortega/issues/41

Replace old Handshake by the new one
Remove UserRole hierarchy
Move pay responsibility out of ProtoMicroPaymentChannel
Provide a pimp-my-library class for `Wallet`

This pimp-my-lib class extends the functionality of bitcoinj's `Wallet`
in order to:

* Have some accessors that returns `BitcoinAmount` instances rather than
`BigInteger` objects representing Satoshis.
* Have a function `blockFunds()` that may be used to block funds. This
will commit the tx marking its funds as spent.
* Have a function `releaseFunds()` that may be used to release
previously blocked funds.