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.