Optimize ScalarBaseMult

Code uses a windowing/precomputing strategy to minimize ECC math.
Every 8-bit window of the 256 bits that compose a possible scalar multiple has a complete map that's pre-computed.
The precomputed data is in secp256k1.go and the generator for that file is in gensecp256k1.go

Also fixed a spelling error in a benchmark test.

Results so far seem to indicate the time taken is about 35% of what it was before.

Closes #2
RecoverCompact and SignCompact now use the btcec.PrivateKey and btcec.PublicKey types.

btcwallet/rpcserver.go needs a corresponding change or else that will break.

This closes #6
Use btcec structs instead of ecdsa structs everywhere.

This change should make it so that only btcec relies on the crypto/ecdsa package for secp256k1 math.
IMPORT PATH MODIFICATION CHANGESET
----------------------------------

Please use this changeset as the first one on top of the conformal codebase.
Note that if there are new imports, they need to be changed as part of this
changeset. In general, use "git rebase" on github.com/conformal's version
and apply this changeset first.