Adding runtime checks and invocations for PNs on iOS 8

Binary libraries and support of older versions of Xcode make runtime checks necessary for determining which version of push notifications to register.  This does that.  We can dispense with all the `NSInvocation` stuff whenever we move to Xcode 6 as a minimum development environment.