DSL: Support waitUntilTimeout in Objective-C

Support waitUntil with timeouts in Objective-C.

- Split waitUntil DSL into its own Swift file.
- Convert original waitUntil functions into class methods in order to
  bridge them to Objective-C using the `@objc` keyword.
- Define Objective-C DSLs to call the newly created class methods.
- Add objc tests for the new DSL.
- Update README.

Fixes #71.

---

I tried defining `NMB_waitUntil` as well, but for some reason it just wouldn't work. The compiler kept complaining that the block passed to `NMB_waitUntil` was an unused parameter. I couldn't make heads or tails of it, so I decided to issue this PR for just `NMB_waitUntilTimeout`.
What's the scoop on `dispatch_once` in Swift? In ObjC, the token has to be static for guaranteed correctness. I've seen non-static `dispatch_once`'s elsewhere in the code which made me curious so I googled and found some code that uses this approach:

```swift
struct TokenHolder {
    static var token: dispatch_once_t = 0;
}

dispatch_once(&TokenHolder.token) {
     // Code!
}
```

From: https://gist.github.com/ketzusaka/94e6d0368675b54ead4c#file-inlinefunc-swift