Refactor the tests into their own directory.

Run these with a WD of either tests/ or / and it'll work, since
tests/__init__.py sets up the search path accordingly.