Merge refactor, rename, python 3 compatibility, and odin branches

There were some conflicts that had to be resolved by hand between the `feature/refactor-names` branch and the `feature/python-2-3-support` branch.  There was also a small conflict with the `odin` branch itself.  I've resolved all of these here.

So, if the refactoring/renaming branches look good AND the python 3 compatibility stuff looks good, you can just merge this PR instead of having to resolve the conflicts.