Improve mac_digit bounds checking
Improve mac_digit bounds checking

By starting with `split_at_mut`, the hot multiplication loop runs with
no bounds checking at all!  The remaining carry loop has a slightly
simpler check for when the remaining iterator runs dry.

rust-lang/num,rust-num/num-traits,rust-lang/num,rust-num/num-traits,rust-num/num-bigint,rust-num/num,rust-num/num-integer,rust-num/num-integer,rust-num/num-bigint,rust-num/num