Merge everything

Merge all the branches we have open.

This includes the pre-meeting odin.local code, the python-3 compatibility code, the refactorings and renamings discussed at the meeting, a bunch of merge-conflict fixes, and then updates to the merged code to make it all Python 3 compatible.

This also includes a very minor bit of code towards implementing the Distributed Array Protocol, only because it was easiest to leave it in this PR.

Resolves #37, #32, #31, #28, #27, #23, #21, #19, #18.

Partially addresses #45.