Wallet clean

This pull request attempts to clean the `Wallet` class so as to adhere to practices used throughout the rest of the repository.

It deprecates the following methods:

* `newMasterKey` --- considered harmful, and there is no reason not to just use `new Wallet(...)` instead, which is explicit and less ambiguous about what may happen.
* `setUnspentOutputs` --- this should only ever be done on initialization, and therefore has been included as an optional argument to the constructor.  All other UTXO handling is done through `processTx`.

It also moves as many of the closure scoped methods to the prototype as possible without modifying/increasing the API.