Pep8 and docstring cleanup for bridgedb.Bridges.get_hmac().
Pep8 and cleanup for bridgedb.Bridges.get_hmac_fn().
Move HMAC and HMACfunction creators to bridgedb.crypto module.

 * MOVE bridgedb.Bridges.get_hmac()    → bridgedb.crypto.getHMAC()
 * MOVE bridgedb.Bridges.get_hmac_fn() → bridgedb.crypto.getHMACFunc()
 * CHANGE all other modules which use these functions to use the newer
   ones.
Separate key storage from crypto.getKey() to crypto.writeKeyToFile().

 * ADD a new function, bridgedb.crypto.writeKeyToFile(), which is merely the
   keyfile writing logic from bridgedb.crypto.getKey().
Add crypto.getRSAKey() function.

 * ADD a function for getting/creating RSA keypairs.
 * ADDS a dependency on pyCrypto.
Condense single use ReCaptchaKeyError exception message.

It's only used once, we may just as well initialise it in that one place
with that message and remove the __init__ constructor from the exception
class.
Add documentation to captcha.Captcha class.
Add more documentation to captcha.ReCaptcha class and its methods.
Change captcha.GimpCaptcha check() and get() to use HMAC(encrypt(answer)).

This changes the way that ``captcha.GimpCaptcha``s work to use an
asymmetric keypair to encrypt the CAPTCHA answer. Then, it creates an
HMAC of that encrypted result, using an HMAC key which is derived from
the client's IP address and a master HMAC key used for CAPTCHA challenge
string verification.

TODO: We should possibly add a timestamp into the HMACed data so that we
can timeout requests, and also to disallow adversarial bots which solved
one CAPTCHA a year ago from reusing it over and over again.
Update docstring for bridgedb.captcha.GimpCaptcha.get().
Add GIMP_CAPTCHA_[ENABLED|DIR|KEYFILE] settings to bridgedb.conf.
Add GIMP_CAPTCHA_[RSA|HMAC]_KEYFILE settings to bridgedb.Main.loadConfig().
Add coverage skip lines to untestable portion of ReCaptcha.get().