Builds on top of #17219
Avoid knapsack when there’s no change, by enabling BnB when subtracting fees from outputs. Gotchas:
- when coins are pre-selected, it still uses knapsack
- it still excludes dust inputs based on their value minus the fees needed to spend them, but it does not use their effective value in BnB. I don’t think this matters in practice, because
subtractFeesFromOutputs
is generally used to spend either all coins or a selected bunch. But there is an edge case where e.g. it can choose between two 0.01 BTC inputs, one SegWit and one legacy, and it won’t care.