Merge pull request #230 from sortega/sam_pays_btc_fees

Make seller pay all bitcoin fees
Fix how wallets are injected on ITs
Merge pull request #232 from sortega/fix_it

Fix how wallets are injected on ITs
Add a new data model based on reactive properties

This new data model is designed to be consumed by both the actor system and
the Coinffeine API. The former would have the ability to mutate the properties
while the latter is only able to read them.

This data model allows the direct access to the Coinffeine data from the API
without interacting with the actors. That reduces the response latencies,
reduces the data fetching complexity and removes the risk of unresponsive actors
unable to satisfy the data retrieval request.
Inject bitcoin properties into `BitcoinPeerActor`

Using the cake pattern.
Inject bitcoin wallet properties into `WalletActor`

Using the properties previously injected into `BitcoinPeerActor`.
Make `WalletActor` push values in wallet properties

So they can be consumed by the API.
Move `Balance` class to `model.currency` package.

Since we are gonna use it in properties rather than events.
Replace type of wallet balance property

From `BitcoinAmount` to `BitcoinBalance`.
Fix properties as values instead of functions

We should assume that properties are values instead of functions to have the
guarranty to interact with the same object every time.
Replace getters from `CoinffeineWallet` by properties

And use that properties in GUI's `ApplicationProperties` rathern than
events.
Remove `WalletBalanceChangedEvent` from the codebase

Since it was fully replaced in wallet properties.
Several fixes in Coinffeine properties

* Rename `WalletProperties.primaryKeyPair` to `primaryAddress`
* Make `MutableProperty.HandlerInfo` private and rename it to `Listener`
* Move handler invocation logic to `MutableProperty.Listener`
* Use promises and futures in `MutablePropertyTest`
Merge pull request #233 from apoloval/task/PropertiesLayer

Provide a data layer based on reactive properties
Simplify DefaultExchangeActor initialization

Remove initialization message and (slightly) improve how dependencies 
are passed.
Change OrderFundsActor initialization

It now receives collaborators refs on its constructor.
Simplify OrderActor initialization
Remove ServiceRegistry

It was used just for the message gateway and was not worthy enough.
Simplify MarketSubmissionActor initialization
Simplify SubmissionSupervisor initialization