math and integer: rework the way pow() is handled.

Essentially, relay to std::pow for all arithmetic types, whereas for integer
adopt the same implementation as for arithmetic operators.

Conflicts:
	src/math.hpp