Ignore socket configuration files for emacs.
Add cipher, compress, and digest preferences and rename parameters.

 * Rename gpghome to homedir.
 * Rename gpgbinary to binary.
 * Add setting to append '--no-use-agent' to the command string in an attempt
   to overcome bugs resulting on systems where the user has gpg-agent running
   in the background (with some configurations, this is run before X is
   started, and killing the agent can result in X dying) and GnuPG tries to
   call the program specified by the symlink at /usr/bin/pinentry, result in
   encryption and decryption failing due to the '--batch' option blasting
   through pinentry without input. This results in a complaint from GnuPG:

       gpg: Sorry, no terminal at all requested - can't get input

   This bug also prevents symmetric encryption/decryption from working in a
   similar manner.
       Daniel Kahn Gilmor's monkeysphere, if I am recalling correctly, has a
   hack to remove the $DISPLAY variable from the users environment, and then
   add it back in, but frankly this option frightens me, as unsetting the
   display could result in all X applications failing.
       Werner Koch's suggestions, from the gnupg-devel mailing list are:
   http://lists.gnupg.org/pipermail/gnupg-users/2007-April/030927.html
       And, for the record, '--no-use-agent' doesn't disable pinentry.
Add various new options and assign input parsers to them.
Rename handle_status() parser methods to be private to cleanup the API.
Add a unittest and a fix for hexidecimal inputs with lowercase.
Use proper tempfile isolation of GnuPG homedirs in unittests.
Since we use '--no-emit-version', we don't need this anymore.
Cleanup docstring for GPGTestCase.setUpClass().
Add better unittests for homedir and keyring creation.
Remove old logger statements and comments.
Add unittests for multiparty file en/decryption and symmetric en/decryption.
WHO PUTS UNITTESTS IN A TRY/EXCEPT BLOCK WHICH CATCHES ALL EXCEPTIONS?!

 * WHAT WAS THE POINT OF WRITING THE UNITTEST IF IT ALWAYS PASSES?
Add option to delete subkeys with GPG.delete_keys().

 * TODO this needs unittests.
Rewrite GPG.decrypt_file().
Various docstring and whitespace fixes in parsers.py.
Fix a bug which caused result_map['crypt'] to expect a Verify().
Add hastily written check_preferences().

 * TODO I sleepily realised two lines before the end of bashing this out that
   it should just be a set difference.
Return the result of a encryption or decryption operation without *.data
Fix an old-style class.
PEP-8ify a couple lines that were running off the screen.

 * Also, change a logger string to say 'GnuPG' instead of the binary's name
   'gpg'.