Make istoobig and calcfee testable

This has a much smaller impact on the code, and both the isTooBig and calculateFee are members of the decoratedTx structure.

Likewise has a newDecoratedTx member been introduced in the withdrawal structure.

I don't like how the isTooBig and calculateFee functions need to be passed the decoratedTx as they are members and not method receivers and cannot operate directly on the structure.

Replaces PR#90

That's correct, but since they're defined inside newDecoratedTx, they can refer to the newly created tx there. For example:

func newDecoratedTx() *decoratedTx {
	tx := &decoratedTx{msgtx: btcwire.NewMsgTx()}
	tx.calculateFee = func() btcutil.Amount {
		return calculateSize(tx) * btcutil.Amount(100)
	}
	return tx
}