Fix wrong value type passed to format string
Make error strings lowercase
Integrate rollback into withdrawal algorithm
Fix off-by-one error

The precondition check in rollBackLastOutput should make sure there are
two or more outputs in order to proceed.

Extended test checking the error path to zero and one output and
modified a test that had only one output in order to make it satisfy the
precondition.
Add and use specific error code to indicate precondition violations
Make precondition explicit in method comment
Refactor a bunch of our test helpers to make them more flexible

This also changes most of them use unique IDs for the DB entries they create,
meaning they can now be called multiple times in a single test.
Change withdrawal tests to use real Credits instead of TstFakeCredits
Move TstFakeCredit to input_selection_test.go
Make isTooBig and calculateFee testable
New tests for signMultiSigUTXO (previously SignMultiSigUTXO)

signMultiSigUTXO now also calls validateSigScript() to ensure the sigscript
it generates will execute later on.

New SignTx() function which signs all inputs of a given tx.

Plus removal of createTxWithInputAmounts, which is no longer needed as we
have the more flexible createDecoratedTx.

And last but not least, some fixes for issues pointed out by go vet.
Generate msgtx from decoratedTx

This commit separates the btcwire.MsgTx from the decoratedTx, but the
MsgTx can be generated from the decoratedTx via the toMsgTx function.

Further, this makes it easier to test these two entities separately,
making test clearer and easier to understand.
Add test for rollback trigged by first isTooBig check in withdrawal algorithm