Use system event stream to manage event channel subscriptions
Remove event subscription and descubscription from `EventChannelActor`

Since we are using the system event stream, the event listeners can just
subscribe to it instead of requesting anything to the `EventChannelActor`.
Replace `EventProducer` by `EventPublisher`

Instead of sending the event to the `EventChannelActor`, this new trait sends
the event directly to the system event stream. In tests, the event channel probe
is not representing the channel itself but a subscriber.
Remove `EventChannelActor` from the equation

Remove that actor and stop using it from the actor system. The system event
stream is used instead.
Merge pull request #133 from apoloval/task/164

Replace `EventChannelActor` by the system event stream
Make Exchange.Progress additive
Replace Exchange trait by an Exchange case class

Use Exchange.State to model the distinct states and state-dependent
exchange data. Also add some pimps to easily move from one state to the
next one.
Merge both SampleExchanges to avoid duplication
Move SampleExchange to the model module
Simplify OrderTest with SampleExchange
Rename NonStarted to NotStarted
PR feedback
Merge pull request #132 from sortega/task/165_exchange

Replace *Exchange hierarchy by a Exchange case class
Introduce EventChannelProbe

It makes easier to assert on Coinffeine events produced
Report connection status to the bitcoin network
Merge pull request #134 from sortega/task/153_bitcoin

Report status of Bitcoin Network connectivity
Add support for status bar widgets
Add a control for displaying connection as a colored disc
Renaming Downloaded to NotDownloading

The later is more accurate
Add a widget for bitcoin connection status