What Orbital::add_until did. A bounded add either takes some of what
is left or finds nothing left; there is no third answer, and no value
past the limit is ever written.
Additions are expected: a cause discovered later lands here rather
than in a new major version, so a caller matches what it handles and
leaves the rest to a catch-all.