Test fixture refactor

Some general tidy up whilst getting to know the test suite:

- Renamed collections of test fixtures based on whether they passed or failed (vs test and test2)
- Refactored references to fixtures to use a `fixture()` method to resolve the full path
- Removed small test generation in favor of `TestGenerator`
- Removed lots of protected methods on base classes in favor of more specific helper classes like `ParaTestInvoker`
- Removed the performance test, it always seems to break and didn't seem to add much value
- Removed the usage test, seems overly fragile
- Only test long args versions, rather than both short version and long version

Still quite a bit more that could be tidied, and likely some more work to be done, but wanted to put in a PR to see if there was interest in me progressing this.