Makes tester class into an interface so users can implement their own testers

Right now the assertions are pretty cool, but we're coupled to the default Go test harness. This makes the test harness into an interface type and provides a default test harness type so that the API is unchanged.