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 simplified the code by removing the special case for `exp==1` because we don't have the move semantics with primitive integers.  `exp /= 2` is more readable than `exp = exp >> 1` and equivalent to it:

- http://is.gd/cYcfFU (hit the [ir] button)