secp256k1/ecdsa: Add sign and verify tests.
secp256k1/ecdsa: Add sign and verify tests.

Although the ECDSA code has been extensively tested through usage and
external fuzz testing, there are not currently any unit tests for the
non-compact signing and verification path.

This resolves that by adding signing and verification tests for both the
positive and negative paths.  The following is a high-level overview of
the changes:

- Create new known good test data that is easily reproducible and has
  been independently verified with the Sage computer algebra system
  - The test data includes the original messages so the resulting hashes
    are independently verifiable and have a known source
  - The test data includes variations of signing the same data with
    different keys and nonces, both deterministically generated via
    RFC6979 and random, and signing different data with the same keys
- Add tests to ensure the aforementioned test data that was
  independently verified produces the expected results
- Add tests which are specifically designed to exercise conditions that
  lead to invalid signatures
- Add tests to help ensure the signature verification code fails to
  verify edge conditions as expected by crafting signatures that are
  specifically designed to hit them

decred/dcrd,decred/dcrd