Refactor tests

* Use pytest syntax to reduce boilerplate
* Move testcase tests into testcases directory

Depends on #26, so will be easier to review when that is merged.
But now we have a project that's tested using a different library to the rest of our stuff, making it harder or more awkward to work on in the future, especially for any newer/less-experienced developers.  The more disparate our technologies, the greater the burden of learning them, updating them in future, and reviewing their code.  Without any particularly good reason for doing something different, it's probably best not to.  In this case, the benefit is minimal, and seems subjective (to my knowledge, for most people, concision and readability are much less strongly correlated as they are for you).  Considering that any change both takes time and may ask for future time (see also Selenium :P), I'd personally be wary of making changes like this one off-hand.  `self.assertBlah` works perfectly fine here, and we can use `py.test` (saving having to write a `runner.py`) with that with minimal need for mental effort the first time someone comes to this code.

We've used py.test a couple times now, so maybe we and @meshy and whoever else is interested should have a think about whether it's worth switching to for realsies and if that requires updating our coding convention.