give credit to BitcoinJS for sig2pubkey code
default to deterministicK for #sign
remove random element from default signing

In the rare case where the computed value of k is unacceptable, rather than
falling back to a random value, throw an error. This can and should be fixed in
a future update where the full algorithm for deterministic k from RFC 6967

https://tools.ietf.org/html/rfc6979#section-3.2

...also, remove the obsolete signDeterministicK function. Since k is now
deterministic by default, that function is not useful.
change default static sign method to deterministic
support the case where r, s are invalid

Rarely it will be the case that r, s are invalid when using a deterministic k.
RFC 6979 specifies how to handle this case by iterating through new values of k
until a suitable one is found. This allows one to pass the badrs value to
deterministicK(badrs) so that you can iterate through more values of k in case
r, s are bad. This is used in the signing function; normally one ought not need
call deterministicK directly.
test signRandomK should differ when called twice