EC constants and bitShifts

Chained on #182.

This pull request is relatively straight forward, it extracts several `BigInteger` constants in `ec.js` and `ecdsa.js`.
It also uses a `shiftRight` in place of `divide` where the divisor was a multiple of 2, as it is several magnitudes faster.

Finally, `pow(3)` is now used where `x.multiply(x).multiply(x)...` was found.
`x.pow(3)` was used over `x.square().multiply(x)` for readability, as their performance difference is negligible.

Mostly just some low hanging fruit.

**edit:** I added a fix for point decoding of curves other than `secp256k1`, whoever wrote that initially was using hard coded constants specific to the curve bitcoin uses.  I also added a test to prove this (without the embedded fix, it would fail).

Comparison link: https://github.com/dcousens/bitcoinjs-lib/compare/ectests...ecconst