Clean up Wallet constructor function

Since you are moving stuff out of wallet scope, we might as well finish it. One thing I'm not too sure whether it is good or bad is the use of `bind` on `processTx` and the fact that `processTx` as a seemingly free function has references to `this`. The only argument I have for leaving this Frankenstein in there is that it is a private method. Alternatives are 1) passing the wallet object to `processTx`; 2) `Wallet.prototype._processTx`