first 2to3 pass + manual fix for metaclass, UserDict and OrderedDict
fix basestring test in cython
py3: remove types usage in animation
py3: prevent %s/%d replacement, use the RawConfigParser as a base.
py3: level=-1 is invalid in python3, make it work with level=0
py3: fix slots errors in core/image
py3: avoid the usage of PyString_FromStringAndSize().

Instead of doing ret = PyString_...(buf, size)
Do: ret = buf[:size]
py3: list.sort() doesn't accept cmp= anymore. Rework to use key=
py3: fix weakmethod to return the instancemethod without using new module (doesn't exist anymore)
py3: object doesn't accept kwargs
py3: introduce new kivy.compat module for checking if we are on python3, and define new "types", like string_types.
py3: use different implementation for weakmethod, much easier to understand.
py3: avoid BOM check for lang, and avoid to use ClassType
py3: fix core_select_lib import as well.
py3: import configparser or ConfigParser, depending 3.3 or 2.7.
py3: type setup.
py3: fix ConfigParser class with getdefault / getdefaultint
py3: start to clean bytes/char*/str (we got an image!)
py3: compatibility fixes for 2.7: don't set str type if we use encode/decode. Otherwise, we'll get unicode.
py3: fix window/pygame event.str -> event.unicode