A bunch of changes, the biggest of which is a py.test-based test suite w/ travis & coveralls integration