Input selection algorithm

Rebased to vp-withdrawal.

Note I had to make some minor changes to make the test run again.

Also the createInputs and createInputsStore needs to be cleaned up. They are both taking a store right now and especially the createInputsStore name is misleading.
Yes, this should be replaced by the WithdrawalAddress. But to do that we need to consider what to do with the current Credit definiton, which is only defined for a VotingPoolAddress:
 
// Credit implements the CreditInterface.
type Credit struct {
	Addr   VotingPoolAddress
	Credit txstore.Credit
}