Edge case fixes and better error handling.

- Removed dependence upon ARCSafe_MemMgmt.h
- Fixed race condition between SCNetworkReachabilityGetFlags() and SCNetworkReachabilityScheduleWithRunLoop().
- Added "state" property so that users can determine when reachability flags are valid.
- KVO notifications now happen on the main thread.
- More graceful error handling and reporting.
- KSReachableOperation can now be initialized with an already instantiated KSReachability object.