Make default gen_key_input() Key-Type conditional on GnuPG version.

 * ADD functions _util._match_version_string(), _util._is_gpg2(), and
   _util._is_gpg1() for determining whether to set the default Key-Type to
   'default' (for GnuPG v2.x) or to 'RSA' (for GnuPG v1.x).
 * ADD class attribute GPG.binary_version, which stores the GnuPG executable's
   version string, which should be in the form x.x.x, where 'x' is an integer.
If using GnuPG v1.x, use {'Key-Type': 'RSA'} in GPG.gen_key_input().

 * CHANGE default key type to RSA for older GnuPG versions, since they seems
   to not understand using a 'default' key type.
 * UPDATE docstring for GPG.gen_key_input().
Simple indentation error fix
File and IO handling in Py3 is different than Py2

Instead of checking whether data isinstance of 'file', then we check that
it is file-like _enough_ to be treated as a file (i.e. it hasattr 'read').
Update TODO file with tasks done and further work needed.
Merge branch 'fix/5-genkeyinput-default-type' into develop

 * FIXES issues #5 and #11
   https://github.com/isislovecruft/python-gnupg/issues/5
   https://github.com/isislovecruft/python-gnupg/issues/11
 * ADD checks for and attribute GPG.binary_version
 * CHANGE to generating RSA keys for GnuPG 1.x, and 'default' keys for GnuPG
   2.x, because GnuPG 1.x doesn't understand the 'Key-Type: default' batch
   file directive.
Merge remote-tracking branch 'mmn/simple_indentation_error' into develop

 * ADD patch by Mikael Nordfeldth.
 * FIXES wrong identation level on a unittest docstring.
 * CLOSES issue #11.
Merge remote-tracking branch 'mmn/file_and_io_handling_diff' into develop

 * ADD patch by Mikael Nordfeldth to file python3 syntax compatibility due to
   the 'file' builtin being removed.
       isinstance(foo, file) → hasattr(foo, 'read'), or,
       file = _io._IOBase
 * CLOSES issue #13.
   https://github.com/isislovecruft/python-gnupg/pull/13