Fix a couple comments
Changed TxIn.PreviousOutpoint to TxIn.PreviousOutPoint.
Move most of txToPairs into a separate function

That function doesn't need a Wallet instance to run, so we can
test it easily, unlike txToPairs.
Improve the new TestCreateTx and a few other tests

Now that test actually checks the created tx is what we expect.
Also adds a couple tests for selectInputs.
Move more code out of createTx() into a separate function

Also adds comments for new functions/methods
A couple small improvements to tests
Move an error checking to the if block where it belongs
Now createTx() adds one input at a time

First to cover the total amount from all outputs, then it estimates a minimum
fee and adds more inputs (again, one at a time) if necessary.
Remove unnecessary err declaration and fix arg order of InsufficientFunds
A bunch of fixes suggested by jrick
Attempt at fixing TestCreateTx
Revert a change to signMsgTx that could caused it to return without signing
anything
Make sure we sign the tx after updating the value of the change output
s/InsufficientFunds/InsufficientFundsError
Change createTx() yet again so that it does not calls signMsgTx()
unnecessarily.

In order to do that it has to keep track of the size estimate for the tx, so
that it can estimate the fee.