Implement DefaultMicroPaymentChannel

**Description:** complete the implementation of `DefaultMicroPaymentChannel`. To do so, make some preliminary changes to make it easy to implement (extract test utilities, fix auxiliar classes problems).
**Testing:** tests pass
**Coverage:** XX % for the impl package and YY % for the coinffeine-common module