Error handling

Functions now return 'error' where sensible instead of relying on nil returns value or 0 and 1 to indicate failure and success respectively (which was extra confusing because the C implementation of secp256k1 uses 1 for success and 0 for failure, as if it were a boolean).

Log panics were also replaced with 'return error' so it will not unexpectedly crash other users of this library.