Test coverage and coveralls integration

Run tests on Travis CI with test coverage, and enable [Coveralls](https://coveralls.io) to track and report coverage.

This also required switching to py.test from nosetests for running the tests on Travis.  The tests can still be run locally with `python -m unittest discover`, `nosetest` or `py.test`.