Add promotion logic for arithmetic ops

This is in advance of some numba experiments