Fix exponentiation for BigIntegers

Commit 34cbfe9f modified line 4021 to add a workaround for `exp` which was
believed to mean natural exponentiation. Thus, BigNumber.exp(x) was defined as:

    this^x

whereas the previous code had defined BigNumber.exp(x,z) as:

    z.convert(this)^x

It is unclear to the author what z.convert achieved.

This breaking change impacted `expt` and `pow` which were defined in terms of
BigNumber.exp, which, of course, had been redefined to mean natural
exponentiation.

This commit fixes that, but introduces a rather unsightly name for the member
function which implements bnpExp. It could not be used directly as the
implementation of `BigNumber.pow` and `BigNumber.expt` because of the mysterious
second argument, `z`.