Optimize ScalarBaseMult

Code uses the binomial expansion strategy which eliminates doublings.
All the basepoint doublings are computed beforehand to assist in the base multiplication.
Main function is computeDoublingPoints which computes all the doublings of the generator point G up to the size of the curve's bit size (for secp256k1, that's 256).

Also fixed a spelling error in a benchmark test.

Results so far seem to indicate the time taken is about half what it was before.

Closes #2
Also, I think it would be better to do `p := &curve.bytePoints[i][byteVal]` here so you're not copying the entire 30 bytes of field data for each byte.