Async testing for Issue #6

This is not yet complete, I am submitting a pull request to get feedback so that I can incrementally develop this to a point at which it can be merged.

There are currently three known issues:
 - The spec used for testing fails as needed, but causes a fail in the tests for Specta itself. This seems to be a case of `[SenTestObserver suspendObservation]` not working, but I can't see why it wouldn't.
 - More tests need to be written for the async functionality anyway.
 - If an asynchronous test fails to finish within the timeout period (currently hard coded to 10s), there is no way to cause a fail. Ideally I need to call `STFail()` or something similar, but I'm not sure how to structure this so that it is called at the right time. 

I'd appreciate any advice you can give here.