Add promotion logic for arithmetic ops

This is in advance of some numba experiments
Should these be in `datashape`?