Add indicators for PY2 vs. PY3

--HG--
extra : rebase_source : 549637a713aba52da4c87f1a84436832eba82f1e
Remove conditional import for frozenset (available in Python 2.6+)
Use PY3/PY2 indicators to reliably select behavior. Fixes #237

--HG--
extra : amend_source : 33f3d298acd39933ccf60810902feb2a5d51c793
next function and io module are available on Python 2.6
Use the term 'string_types', following the pattern in six

--HG--
extra : amend_source : 3a4aeb2627549c3dfec15067579eccc8e1314de2
Remove execfile compatibility - unnecessary on Python 2.6+

--HG--
extra : amend_source : 8a0dcd07e62a327647c834a44fe73b8ebc7b53b9
Added tag 5.8 for changeset 67550a8ed9f4
Bumped to 5.9 in preparation for next release.
sdist command: fix case insensitivity when adding some files to filelist

This should fix the problem in Bitbucket issue #100.  It gives the same behavior
for inclusion of default files (README*, etc.) on Windows as Linux.

BACKWARDS INCOMPATABILITY:

This may result in a backwards incompatible change for users on a
case insensitive file system.  If they were relying on some files getting
included in their distribution due to setuptools defaults, and their files do not
have the same case as the files being looked for in setuptools, those files
will no longer be included in the package.

For example, if a package had a file:

readme.rst

Previous to this commit, that file would have been included in the distribution
as:

README.rst

But it will now no longer be included at all.  To get the file included in
the package, it can be added to the package's MANIFEST.in file:

include readme.rst

Files affected by this change will have a case variant of the files or
patterns listed below:

README
README.txt
README.rst
setup.py (or whatever your setuptools script is named)
setup.cfg
test/test*.py
remove unneeded code from last commit
Update changelog
Add a vendored copy of packaging
Implement PEP 440 by using the packaging library