Update copyright info in lib/bridgedb/Raptcha.py and add utf-8 header.
Rename lib/bridgedb/Raptcha.py → lib/bridgedb/captcha.py.

 * CHANGE imports of ``recaptcha.client.captcha`` to
   ``from recaptcha.client import captcha as recaptcha``, to avoid name
   conflict.
 * Update Sphinx source configuration and build files to reflect module
   name change.
Rewrite module docstring for lib/bridgedb/captcha.py.
Pep8 the order of imports in lib/bridgedb/captcha.py.
Fix old-style class bridgedb.captcha.Raptcha.
Rename reCaptcha classes.

 * RENAME captcha.Raptcha → captcha.ReCaptcha
 * RENAME captcha.RaptchaKeyError → captcha.ReCaptchaKeyError
Pep8; move ReCaptchaKeyError to the beginning of captcha.py.
Implement ICaptcha interface and generic Captcha implementation classes.
Add GIMP_CAPTCHA_ENABLED and GIMP_CAPTCHA_DIR options.
Import entire bridgedb.captcha module in bridgedb.HTTPServer.
Split general and reCaptcha functionality into separate classes.

 * CHANGE captcha.CaptchaProtectedResource class to only implement
   general CAPTCHA functionality.

 * CHANGE render_* methods in captcha.CaptchaProtectedResource to call
   subclass overridable methods for actions which are implementation
   specific, i.e. only the reCaptcha class needs to create a fake IP
   address for a client (see the new
   ReCaptchaProtectedResource.getRemoteIP() method), so this
   functionality should be in a separate method rather than in
   captcha.CaptchaProtectedResource.render_POST().  See methods
   getCaptchaImage(), extractClientSolution(), and checkSolution().

 * ADD new captcha.ReCaptchaProtectedResource class which is a subclass
   of captcha.CaptchaProtectedResource, and which implements
   reCaptcha-specific functionality.

 * CHANGE lib/bridgedb/templates/captcha.html to use HTTP parameters
   'captcha_challenge_field' and 'captcha_response_field', rather than
   'recaptcha_challenge_field' and 'recaptcha_response_field' respectively.
Rewrite docstring for bridgedb.captcha.ReCaptcha.get().
Use SSL when requesting CAPCHAs from reCaptcha.

This sounds bad. It is. What's worse: this only fixes half the
problem. The recaptcha.client.captcha.submit() function in the reCaptcha
API [0] is hardcoded to submit the server's (in this case, BridgeDB's)
private API key, the client's IP address (BridgeDB sends a faked one),
and the client's solution to the CAPTCHA, all over HTTP, in glorious
plaintext. Hooray.

[0]: https://recaptcha.googlecode.com/svn/trunk/recaptcha-plugins/python/recaptcha/client/captcha.py
Make a log message in CaptchaProtectedResource more general.
Add bridgedb.captcha.GimpCaptcha implementation.

 * ADD GimpCaptcha class, which handles retrieving cached CAPTCHAs from a
   local directory, creating challenge strings from the CAPTCHA answers, and
   later checking a client's proposed solution against the challenge.
 * FIXES #10809.
Add HTTPServer.GimpCaptchaProtectedResource class.
Update ReCaptchaProtectedResouce docstring.
Remove unused ``site=None`` in bridgedb.HTTPServer.addWebServer().
Move the addition of options.html leaf before bridges.html.
Use GimpCaptchProtectedResources in HTTPServer.addServer(), if configured to do so.