Change take clipping algo

Fixes #2754 by basing the take clipping on the nominal amount instead of the actual amount.
This is the crucial test, right? But don't we need to actually invert the behavior here? As it stands, if I'm reading it right, we are inserting $20 into both `takes` and `transfers`, then we're inserting $35 into `takes`, then we're testing whether `set_take_for` clips based on the $20 or the $35. It clips based on the $20, since the $35 is inserted after the payday created in `take_last_week`.

That's all well and good, but we need a test (a new one if we're not going to modify this one) for the case where there's $20 in `takes` but only $15 (or whatever) in `transfers`. When we `set_take_for` $42 it should get clipped to $40 instead of $30. Do we have a test for this and I'm missing it?

This seems to be another instance where having an initial commit with a failing test would clarify the work being done in this PR.