`_odict_py2/__init__.py` (which used to be just `odict.py`) contains code that does not import cleanly on Python 3 (it has SyntaxErrors).  Rather than fixing those (since this file is only ever imported on Python 2.6 and it's not code we wrote), I put it in a package name ending in `_py2`.  We have special magic in `setup_helpers.filter_packages` that will remove any package name ending in `_py2` or `_py3` if it doesn't match the Python version.

The same applies to all of the other files in `utils/compat` that I moved around as part of this PR.