Use fix-sized arithmetic primops for fixed size boxed types
I think the compiler is ready, so we can do this for all over the 8-, 16-, and 32-bit boxed types.
I are holding off on doing all the primops at once so things are easier to investigate. This one works so far, but all of !4717 (merged) fails spectacular.
Progress on #19026 (closed)