Add asynchronous assertThat named assertThatAfter

Hi!

I just added some convenience assert statement for testing asynchronous code easily and without losing readability. The usage is like this:
```objective-c
assertThatAfter(5, futureValueOf(self.someString), is(equalTo(@"expected")));
```
This checks several times for this string to be @"expected" before timing out after 5 seconds.

The implementation is based in the one used in expecta (https://github.com/specta/expecta/blob/master/src/EXPExpect.m method applyMatcher:to:).

With this in mind, I changed the original assertThat implementation to relay on this one with a timeout of 0 seconds. Of course unit tests have been added and everything is green :+1: 

If you like it, feel free to accept this pull request. If you need me to change something before merging, just tell me and I'll do my best :)

Thank you!