Added NS_DESIGNATED_INITIALIZER for builds on pre-iOS 8/OS X 10.10 SDKs

The `NS_DESIGNATED_INITIALIZER` breaks the build when using older SDKs.

[Here is a Stack Overflow discussion on the issue.](http://stackoverflow.com/questions/24119896/ns-designated-initializer-expected-colon)

I've created a `TaskMacros.h` header for import by any class that wants to use it. 

Framework builds clean on 10.9 SDK and all tests pass.

Indent the nested ifs.