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
Remove compilation warnings on MockExchange
Remove abstract types on common.exchange.Exchange
Split Exchange trait in two

The Exchange trait had two functions: hiding how the exchange protocol 
works (just the createHandshake method) and holding descriptive 
information about an exchange (the rest of the methods, getters in fact).

The former function is kept in an Exchange case class and the former
into a new trait named ExchangeProtocol.
Fix UnspentOutput issues

The class was an invalid case class since TransactionOutput is a 
mutable class and there was a lot of duplicated code related with its
initialization.
Use a strong PRNG for exchange id generation
Merge pull request #190 from sortega/issues/41

Remove abstract types on Exchange