In Python 3 OrderedDict.keys() are not indexable

We could always cast counts.keys() to a list, from the dictionary view they
are but a more efficient way of doing this is to simply pop the items from
our result list as we traverse the returned iterable dictionary view.
Python 3 fixes for chmod and exceptions
mktime takes local time, not UTC

GPG signature timestamps are considered UTC, this may cause times to be off
by delta > 1000 in def test_signature_string_verification because it
incorrectly gave gmtime() as an argument to mktime().

Python 2 and 3 docs both say that mktime should have a struct_time argument
"which expresses the time in local time, not UTC". So the test is now using
time.localtime() instead of time.gmtime()
xrange is called 'range' in python3, change is python2 compatible
mktime takes localtime, or we skew the clocks

The following snippet shows that to create a proper timestamp, we should
feed mktime() with localtime() data rather than gmtime(), as it is locale
aware.

>>> from time import mktime, gmtime, localtime
>>> bad    = gmtime(mktime(gmtime()))
>>> good   = gmtime(mktime(localtime()))
>>> judge  = gmtime()
>>> if bad == good: "You're using UTC. Demonstration is impossible."
... elif bad == judge: "I can be wrong"
... elif good == judge: "but this shows I'm right"
...
"but this shows I'm right"

The above code checks whether gmtime() == gmtime(timestamp) from
mktime(). Obviously we don't get the same 'now' if we feed the bad value
to mktime.
Merge branch 'mmn/python3_install_issue_with_chmod_and_exception_handling' into develop

 * FIX exception raising and handling in _utils.py to use Python3 syntax.
 * FIX os.chmod call in _utils._make_passphrase() to use stat bitmasks.
Merge remote-tracking branch 'mmn/mktime_takes_localtime_not_gmtime' into develop

 * FIX struct_time inputs to time.mktime() to use localtime() not gmtime().
 * CLOSES #9: "mktime takes local time, not UTC"
   https://github.com/isislovecruft/python-gnupg/pull/9
Merge remote-tracking branch 'mmn/xrange_replaces_range_in_python3' into develop

 * CHANGE an occurence of xrange() iteration over a fixed length list to use
   range(); Python3's range() function is equivalent to Python2's xrange(),
   while the small fixed length of the list in this case doesn't effect speed
   at all.
Merge remote-tracking branch 'mmn/python3_KeysView_object_is_not_indexable' into develop

 * FIX Python3 error where a :class:`collections.OrderedDict` instance,
   including it's keys() method, is not iterable.
 * CLOSES PR#7 In Python 3 OrderedDict.keys() are not indexable
Change LICENSE to GPLv3+, after discussion with intrigeri.

 * ADD docs/change-license-emails.txt, which includes email exchanges between
   myself and intrigeri, including links to Debian and LEAP mailing lists with
   arguments for and against using AGPL for a library.
 * CHANGE license header for all files.
 * CHANGE LICENSE file and gnupg/copyright.py to use GPLv3+ text.
Update docs/index.rst to point to online text of new license.
Remove TODO item for keyring separation in GPG.gen_key_input() and GPG.gen_key().
Add scripts/pep8.py for checking PEP conformity.
Merge branch 'release/1.2.0'
Merge branch 'master' into develop
Merge branch 'release/1.2.1'
Simple indentation error fix