refactor setup/do_it/teardown to do_tests

This allows running a test multiple times by letting the user
control object creation and execution.
s/do_tests/run_me/ and documented it