Move most of txToPairs into a new createTx func

Also changes it so that it adds new inputs incrementally as needed instead
of starting with an empty tx and adding all inputs again on each iteration.
While we're ranging over this map, we can combine this with addOutputs and create the necessary btcwire.TxOut structures (parsing the address string into a btcutil.Address, creating the pkScript, and adding the amount from the map), and inserting each into a new btcwire.MsgTx.