Add asynchronous set up and tear down of test cases

The methods -[SenTest setUpWithCompletionHandler:] and -[SenTest tearDownWithCompletionHandler:] are called after set up and before tear down of the test case. These can be used to handle situation, where the setup needed for the test is also asynchronous. There is now timeout or failure handling. The implementation assumes, that the code running in those methods is well tested. If an error occurs, an assertion should be thrown.