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 funds 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. 

The `headOrTails` method is unnecessarily complex taking a partial function and the like. Why this is better than just  `if (Random.nextBoolean()) { ... } else { ... }`?