Implement exchange

**Description** Several things going on in this PR:

- Added a mock payment processor (supersedes https://github.com/Coinffeine/coinffeine/pull/132)
- Refactor the Exchange trait so it consistent with the Handshake trait
- Implement the DefaultExchange, which causes several changes in a bunch of classes because some method signatures change
- Add 3 tests for the DefaultExchange. Many more tests will come, but I am worries this PR is getting too big and I don't want to add more code and refactors to it before it gets reviewed.

**Testing** Tests pass