Implement proper secp256k1 signing

The previous secp256k1 library failed when signing > 64 bytes. We're now using
the secp256k1 curve directly with the ECDSA package to sign and verify
signatures.

This means that we've also had to write DER encoding for our signatures.

All is good.
Separate out utils and return HEX encoded pub key from private SIN key
Add test validating PointsFromDER
Use signature algorithm from bitpay/bitcore

Go's built-in ECDSA signature methods don't produce the same R/S numbers as
bitcore's implementation; verification of the signatures from the JS bitauth
library fails, and additionally verifying known good signatures from Bitauth
fails in Golang.

This is the start of redeveloping the signature algorithms found in the Bitcore
library in Go. This will produce R/S numbers which match Bitauth given the same
inputs.
Update readme.
Break up chaining of calls in sig creation
Fix MSB issues with DER encoding
I'm an idiot