Add test for handshake start

Also, fix issues to make it pass
Refine and test the exchange model

Refine and test the exchange model up to the handshake step
Add missing tests to DefaultHandshakeTest
Refactor Exchange.Amounts
PR feedback
Address some feedback from PR #184

* Rename `Exchange.startHandshake()` to `Exchange.createHandshake()`.
* In `DefaultHandshake`, introduce an additional validation of
refund transactions that checks the correctness of the refund amounts.
* Fix some typos in Scaladoc
Add failure handling for SellerExchangeActor
Ensure Akka test time factor also affects Scalatest
Addressed some feedback from PR #184

* In `DefaultHandshake`, move refund validation into function
`signRefundTransaction()`.
* In `DefaultHandshake`, remove fruitless confidence type checks.
* Make package private all members of `impl` package.
Merge pull request #182 from edrevo/implement-error-handling-in-exchange

Add failure handling for SellerExchangeActor
Merge pull request #186 from apoloval/issues/41

Refine and test exchange model (Cont.)
Introduce the common.bitcoin package

It offers typedefs for the most common bitcoinj types and some goodies
such as ImmutableTransaction to help with case class design.
Use ImmutableTransaction in public messages

To make it work, tune the following details:

 * Don’t use mocks in MockHandshake at they are not serializable
 * Remove UnitTestNetworkComponent as it is redundant
 * Rename from CoinffeineUnitTestParams to CoinffeineUnitTestNetwork for
   consistency
 * Remove ImplicitSender from CoinffeineClientTest as it is redundant
 * Improve BitcoinjTest to allow for test that use the blockchain in
   sequence
 * Make UnitTest compatible with AkkaSpec
Merge pull request #188 from sortega/issues/41

Introduce a `common.bitcoin` package