HD/Wallet clean

This pull request cleans up `HDWallet` and `Wallet` just a little bit.
It first fixes a bug in `createTx` which allowed the creation of transactions even when no UTXOs existed.  Tests have been amended to ensure this does not regress.

I've then removed all the `Wallet` async interfaces (which weren't actually async anyway), with the proposed alternative for users to use something like https://github.com/caolan/async#nextTick.

`hashLittleEndian` is a small convenience option for people using [blockchain.info's inconsistent endianness in their API](http://blockchain.info/unspent?active=$address); and therefore has no business being in our interface, and has thus been removed.   This further reduces parameter complexity for the `Wallet` interface.

I have also enforced consistent use of `network` throughout the project by avoiding *stringly typed* parameters wherever possible, and instead just using the network objects as they were intended.
Also, in accordance with the standards we chose a while back, constructors should always use operator new where possible.

Finally I added some exception messages and tests for `HDWallet.fromBase58`.