Move pow method to the Mul trait

The patch moves the pow implementation to the Mul trait since pow
implicitly requires this implementation.

The patch also renames f32 and f64 pow into powf in order to still have
a way to easily have float powers. It uses llvms intrinsics.

The pow implementation for all num types uses the exponentiation by
square.

Fixes bug #11499