Tweak
Rewrite bag.Subtract to do less allocation, in the hope that it'll be faster.

Might be a little faster, but not all that much.
Nix pointless function 'cmp'