Jim Horng
Jim Horng
It's kind of large commit, since the small commits are hard to resolve merge conflicts while creating this PR. ### Give user 3 options to listen for callbacks for async...
Apple had marked command:1 format(which PyAPNs is currently supported) as [legacy](https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/LegacyFormat.html#//apple_ref/doc/uid/TP40008194-CH105-SW1) and encourage to use command:2 format, see [doc](https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html#//apple_ref/doc/uid/TP40008194-CH101-SW4)