Add test setup and takedown functionallity

This allows the user to seperate individual tests into a function, and
register a callback to run before and after each test.

	setup();
	runTest();
	takeDown();

This allows for a workflow more similar to JUnit, for those familar with
that.
Merge pull request #2 from dadrian/master

Add test setup and takedown functionality