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.
quadmath: simplify and generalize the pow implementation, and remove one of the two literals.