Merge pull request #144 from apoloval/issue/141

Provide a type-safe replacement for `BtcAmount` and `FiatAmount`
Use OrderSet instead of Order as protocol message

Orders should be sent as a complete set to simplify the consensus of
the broker set. This means that `Order` is no longer a protocol message.
Consequently, modify actors to use `OrderSet` instead of `Order`.

Also, remove `OrderCancellation` message. The way to cancel an order is to send a new order set without that given order.

And finally, the introduction of `OrderSet` triggered a redesign of the `Position` class, that become templated (e.g. `Position[Bid.type]`), allowing the removal of several runtime checks in `OrderBook` and `OrderMap`.
Merge pull request #145 from sortega/feature/orders

Use OrderSet instead of Order as protocol message
Add integration testing for open orders
Merge pull request #147 from sortega/feature/146_orders

Add integration testing for open orders
Introduce OrderSet.addOrder
Make OrderSubmissionActor manage a set of orders
Enable integration test
Feedback changes
Introduce ProtocolConstants.orderResubmitInterval
Send orders to the broker grouped by market
Merge pull request #148 from sortega/feature/146_orders

Feature/146 orders
Introduce new IT for order cancellation
Merge pull request #149 from sortega/feature/it

Introduce new IT for order cancellation
Provide a more convenient interface to `Currency` classes

* Move operators from `Currency#Amount` into `CurrencyAmount` trait.
That makes possible to use such operators with the more abstract
type if needed.
* Add convenience `apply()` functions to `Currency` trait to instantiate
amounts in a less verbose way.
* Add a marking trait `FiatCurrency` to deal with fiat currencies.
The Java representation is moved exclusively for instances of this
trait.
* Add a `FiatCurrency.apply()` function to obtain a currency from a
`java.util.Currency` instance.
* Add utility functions to `Currency.Bitcoin` to convert from/to
Satoshi amounts.
Partial replacement of `BtcAmount` and `FiatAmount` by `CurrencyAmount`

In some parts of the codebase, the usage of `BtcAmount` and `FiatAmount`
is replaced by generic class `CurrencyAmount`.