Refactor client.exchange.Exchange to make it similar to MicroPaymentChannel

**Description:** refactor client.exchange.Exchange to make it similar to MicroPaymentChannel. To do so, remove the UserRole class hierarchy and extract the payment processor related responsibilities.
**Testing:** tests pass.
**Coverage:** about the same.
This argument is not used anymore and should be removed. Is that correct?