Split up basic test case to ease extending

Split up the subtest_simple into a number of smaller methods that allow for easier partial overriding of the test case. Ultimately I think it'd be nicer if these were individual test cases. They're structured now so that they can become so, but it would break backwards compatibility.