Closes #24458 - Knapsack always chooses 1 million sats as its change target, making it easier to fingerprint transactions created by the Core wallet. Instead of using a fixed value, choose one randomly each time (within a range).
GenerateChangeTarget
works as follows:
- If the payment value > 25ksat, it is randomly chosen between 50ksat and min(2 * payment_value, 1milsat)
- If the payment_value <= 25ksat, the value is just 50ksat.
The SRD target is 50ksat, not randomized, since the selection does not aim for a specific target anyway.
(Note the random change target was mistakenly not used yet in this PR, see #25825).