DSL: Support waitUntil in Objective-C

Support waitUntil 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.
From: http://stackoverflow.com/a/19845164/73429

> `dispatch_once_t` must not be an instance variable.
>
> The implementation of `dispatch_once()` requires that the `dispatch_once_t` is zero, and has never been non-zero. The previously-not-zero case would need additional memory barriers to work correctly, but `dispatch_once()` omits those barriers for performance reasons.
> 
> Instance variables are initialized to zero, but their memory may have previously stored another value. This makes them unsafe for `dispatch_once()` use.