Add more operations to `PimpMyWallet` class

More functions are added to block funds based on mutable transactions
and multisign funds. This means a new pimp-my-library pattern
for `MutableTransaction` is added.

The unit tests are improved with two additional cases.
Add a wallet actor class hierarchy

The wallet actor is responsible to wrap a wallet and operate on its
funds. Under requirement, it will create a multisign transaction and
will block its founds so they are not used in any other operation.
The resulting tx can be broadcast so its funds would be spent, or
it can be released by the wallet actor under demand, turning its funds
available again.
Address feedback from PR #203

Fix some typos, style issues, and remove the natural-language-like
expressions from the tests.
Merge pull request #203 from apoloval/issues/49

Add a wallet actor class hierarchy
Merge pull request #204 from sortega/issues/41

Use more stuff from the domain model on the rest of the code base
Introduce the Both[T] class
Use Both in CommitmentNotification
Use Both[T] for Deposits
Introduce MockMicroPaymentChannel