Merge pull request #199 from sortega/issue/35_panic

Make some error conditions be resolved by publishing the refund transaction
Fix OpenOrdersTest

Fix timeout override on DefaultMarketStats that was not being taken as
it was of the wrong type. Also use AskPattern to improve the stack trace
in case of error.
Merge pull request #200 from sortega/fix_it

Fix OpenOrdersTest
Enrich `ConfigComponent` traits

Instead of just obtaining a `config`, now this trait must provide two: the
user and the reference configurations. The `FileConfigComponent` now reads the
user configuration from the local application settings folder.
Merge pull request #201 from apoloval/task/ThatUserConfig

Enrich `ConfigComponent` traits
Make OrderActor to actively reject some order matches
Merge pull request #202 from sortega/issue/40_reject_multiple_exchanges

Make OrderActor to actively reject some order matches
Add best step size to the payment processor trait
Use variable number of steps per exchange

Use the best fiat step amount to compute the number of steps and, 
from that point on, the most accurate partition of bitcoin amounts.
Introduce settings as replacement of config

Consuming `Config` objects to extract the settings is not safe. The keys are
spread all over the code, the values have to be converted into the expected
type, they have to be merged to obtain an aggregated config view, ...

This change introduces the concept of settings. The `SettingsProvider` now
provides settings instead of config. The settings provide specific configuration
for each aspect of the app in the form of a case class (no more type unsafe
key-value maps). The canonical implementation of `SettingsProvider` is aimed
to read Typesafe `Config` objects and convert them into settings.
Merge pull request #203 from sortega/issue/46_breakdown

Introduce a variable number of steps per exchange
Pending feedback on #203
Merge pull request #204 from apoloval/task/ThatUserConfig

Introduce settings as replacement of config
Stop rejecting already accepted order matches

AKA, make order match acceptance be idempotent. This fixes #52.
Merge pull request #206 from sortega/issue/52_reject_handshake

Stop rejecting already accepted order matches
Merge pull request #205 from sortega/issue/alberto_no_hace_caso

Pending feedback on #203
Add config save functionality to `ConfigProvider`
Rename `ConfigComponent.settingsProvider`

To the most accurate name `ConfigComponent.configProvider`.
Adjust constants to have successful tests

As now the step size depends on the amounts exchanged, ExchangeTest
was producing a 500-steps exchange. That is an issue since our lock time
is measured on blocks and that means minutes not hours with our current
testnet setup.

To have a reasonable result, this patch increments the lock time to 18
and reduces the exchanged amount to 100 EUR.
Make `FileConfigProvider` thread-safe

By using an atomic reference to hold the current user config.