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)`.
@bjz The original code could move the `base` parameter to the caller as its return value when `exp` is `1`.  It could perhaps achieve better performance only with bigint objects whose initialization cost was not negligible.