Switch to using py.test as the test runner instead of nose

* Better output with the bare asserts we use throughout the tests
* Function fixtures are pretty nice, especially as a way to
  start a background server or create an isolated virtualenv
Merge pull request #1148 from dstufft/switch-to-pytest

Switch to using py.test as the test runner instead of nose