introduce the six module and reduce sphinx.util.pycompat implementation. refs #1350.
use six privided functions/classes to support py2/py3 in one source. refs #1350.

--HG--
extra : amend_source : cb791423fc2e67dc3adb8b6696d07f19ee228705
use six privided iteritems(),itervalues() to support py2/py3 in one source. refs #1350.

--HG--
extra : amend_source : a9bc50e1ef4fcd7e82ef5e89439679550da270f8
wrap iterator with list() to avoid 'dictionary changed size during iteration' on py3. refs #1350.
provide __next__() and use native next() to support py2/py3 in one source. refs #1350.
use six privided text_type() to replace with unicode() to support py2/py3 in one source. refs #1350.
use UnicodeMixin for __str__, __unicode__ to support py2/py3 in one source. refs #1350.
use six privided functions/classes to support py2/py3 in one source. refs #1350
remove 'six' name except importing line.

--HG--
extra : amend_source : ad2e0920772ceae222f4e7b78752c6fd413f9989
Merged in shimizukawa/sphinx-use-six (pull request #238)

using six package for py2/3 compatibility without 2to3. refs #1350