Update unspentOutputs to remove spent unconfirmed outputs
Expose functions needed from the voting pool package
Address a couple of nits with recent En(De)crypt.

This commit adds comments about the specific crypto key types, moves the
selectCryptoKey function before the Encrypt/Decrypt functions that call it
to be more consistent with the rest of the code base, and slightly
modifies the verbiage of the comment.
Add the new ErrInvalidKeyType to the stringer map.

Also add it to the stringer test.
Voting Pools - Deposit side
Move voting pool code to votingpool package
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