Wallet: cleanup createTx control flow

Unknowingly this also revealed a subtle bug in the previous
implementation which allowed the creation of transactions even
when no UTXOs existed.
Wallet: remove async interface
Wallet: use dustThreshold directly

The definition of a dust amount is pretty clear, and I feel it is less
readable when represented as isDust(amount) or !isDust(amount), by
comparison to    amount <= dustThreshold   or   amount > dustThreshold.

Also means I don't have to stray my eyes to understand the
implemention by looking up isDust does.
Wallet: remove use of hashLittleEndian
HD/Wallet: use network objects, not strings
Wallet: enforce operator new
HDWallet: add fromBase58 exception checks
bufferutils: use verifuint for 64 bit integers

Taken from browserify-buffer.

Also adds a few more tests to assert this is working correctly from both
read and write perspectives.
The assertion in for writePushDataInt in the 32 bit case was
unnecessary as that is handled by buffer.writeUInt32LE anyway.
bufferutils: test fixture filename copies parent
Wallet: use assert for consistency
HDWallet: clarify test intention
Merge pull request #200 from dcousens/walletclean

HD/Wallet clean