Rearrange ECDH code

This puts the code in its own file rather than lumping it with
secp256k1.  It also updates ECDH() so that it accepts to pointer
arguments.  That better follows the convention used in crypto/ecdsa.
Fix secp256k1 curve

The secp256k1 now performs proper curve arithmetic.  This code was
mostly copied from ThePiachu's GoBit project with minor adaptations to
make it fulfill the elliptic.Curve interface.  That way, we get
GenerateKey(), Marshal() and Unmarshal() for free.

This also changes our blind signature example to use the corrected
curve.