iOS: Re-running a test should respect shouldRunOnMainThread.

If you re-ran a test, the test was always run on the main thread. This is different behavior from the runs in the complete test suite.

These commits pass along the test group with the test to the detail controller, which then uses the context of the group to re-run the test. It actually creates a new group with the same context, with only (a copy of) the test to re-run in it.