Voting Pools - Deposit side
Test helpers to create arbitrary unspent outputs
WIP: voting pool startwithdrawal
Move waddrmgr/tx_test.go to votingpool/tx_test.go
Check that the status object returned by startWithdrawal() has an output with state==success for the outbailment we fulfilled
finalizeCurrentTx() now adds a change output, plus some extra niceties
Replace one ugly hack with another one slightly less so
Simplify some things, use FIXME comments for stuff that needs discussing with conformal, panic() in not-implemented code paths and add/expand some comments
A bunch of changes:

- Fix (and rename) txstore.Store.UnspentOutput
- Change fulfilOutputs to store the created transactions into waddrmgr
- Use TxSha as ntxid
- Fix createInputs to pass an existing dir to txstore.New()
New txstore.Store method to get an unmined tx

Also use that in the new test, instead of relying on the tx returned
by Withdrawal.fulfilOutputs().
Move ntxid() and pkScript() from Withdrawal to more appropriate places.
Rename Withdrawal to withdrawal
Change TestFulfilOutputs() to request withdrawals for 2 outbailments instead of 1
Get rid of a couple FIXMEs that depended on changes to btcscript, and wrap some long lines
Split tx_test.go into withdrawal.go and withdrawal_test.go
Implement votingpool.Withdrawal(...)

Now the withdrawal struct is internal-only.

Also dealt with some XXXs, but ended up adding others along the way.
Move Withdrawal to the VotingPool struct
Split VotingPoolAddress into separate types for deposit, withdrawal and change
Refactor some data structures

Get rid of OutBailment by moving its fields directly into another struct
(WithdrawalOutputRequest), and change WithdrawalOutput to include a
WithdrawalOutputRequest field to avoid reusing it for two completely
different purposes.