secp256k1: Implement direct key generation.
secp256k1: Implement direct key generation.

This implements private key generation directly for the secp256k1 curve
instead of calling the generic version in the standard library that
requires the adaptor code and thus all of the extra allocations and big
integer conversions involved with it.

Not only is this implementation significantly more efficient, both in
terms of execution speed and memory allocations, it also is
theoretically more secure since it does not have the modulo bias the
implementation in the standard lib does.

The following is a before and after comparison of generating a private
key:

name                 old time/op     new time/op     delta
-----------------------------------------------------------------------------
PrivateKeyGenerate   38.6µs ± 4%     0.4µs ± 5%      -99.01%  (p=0.008 n=5+5)

name                 old allocs/op   new allocs/op   delta
-----------------------------------------------------------------------------
PrivateKeyGenerate   14.0 ± 0%       3.0 ± 0%        -78.57%  (p=0.008 n=5+5)

decred/dcrd,decred/dcrd