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.

As a side note, the testing infrastructure really needs to become data driven, at the moment it was simpler to use `testnet` more often as the test data was more readily available.