deterministic k in ECDSA

The traditional ECDSA algorithm involves picking a random value of k, resulting
in a different signature every time the same data is signed. However, it is
valuable to produce deterministic signatures so that one can test the accuracy
of the signing algorithm by ensuring that it always comptes the correct
signature by simply testing the output. The standard way to do this in the
bitcoin world is HMAC-DRMG.

See references:
* https://tools.ietf.org/html/rfc6979#section-3.2
* https://bitcointalk.org/index.php?topic=285142
* https://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg02721.html