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