fix Python 3 tests

Fixes most tests for Python 3 and doesn't break tests for Python 2.  Includes the PR from #42.  Resolves #16.

This test is still broken under everything, including on the release version, though, and I'm not clear why.

~~~~
======================================================================
FAIL: test_encryption_multi_recipient (__main__.GPGTestCase)
Test encrypting a message for multiple recipients
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./gnupg/test/test_gnupg.py", line 853, in test_encryption_multi_recipient
    self.assertGreater(len(encrypted), 0)
AssertionError: 0 not greater than 0

----------------------------------------------------------------------
~~~~

I'm using homebrew-built Python binaries on OS X 10.9.2 with `gpg2` from [GPGTools](http://gpgtools.org).  `ulimit -n 512` was needed to run the test suites so we didn't run out of filehandles.