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.
(Also,  I wrote a really basic functional programming interpreter for one of my uni projects and interestingly, writing parsing code for the curried version wasn't any [easier or] harder than it would've been for the more parenthesis-laden version.  Just required more thinking.)