libcore: add Int::pow() and a new trait Sq on top of Mul.

I personally find these methods convinient, but I'm not sure if they appeal to everyone.  I want to hear your opinion.

## Usage

`Sq::sq()`: replace `(x - mu) * (x - mu)` with `(x - mu).sq()`.

`Int::pow()`: replace `std::num::pow(x, i)` with `x.pow(i)`.
I'm guessing LLVM would optimise to a bit shift anyway.

What do you mean by 'don't have the move semantics with primitive integers'?