Some tweaks to arithmetic operations/type promotion
Change irange() / step to irange.by(step) notation
Generalize the arithmetic deferred kernel factory a little bit