Add support for running tests serially rather than in parallel.
process test results as we go when running serially so we don't fill up the results channel
Add before/after functions which run before and after each test