Move test runs to background thread by default.

Responsiveness of the UI during a test run on iOS devices is particularly bad. So by moving them to a background thread by default we provide much better responsiveness, allowing the user to look at test failures, cancel the test run, etc.

Tests that require the UI thread can change the default.