1>. Notify reachability when the library starts to work.
The issue I am trying to solve is that users should get the notification if they open the app without network connected.
2>. Fixed the issue that in case of using HostName, if no network before the library start, it will not send any notifications when the network is back.
3>. Fix double notification issue.
Dispatch_async will create a new thread to do the job for sending notification and changing the status. This thread may be slower than the main thread. So the main thread may dispatch the asynchronise event several times before the status is changed.