Add UniformDH unit tests

 * Test against test vectors
 * Do 1000 generate/exchanges and validate the keys.  Also acts as a quick and
   dirty benchmark (run with the Twisted trial to actually log).

This required changing the UniformDH ctor to allow the user to specify the
private key at run time.  If a key that is not 192 bits is specified, it will
raise a ValueError, but no one should use that feature apart from the test code.

The key generation was also modified to no longer leak which public key is
chosen via timing information.