Simplified the interface and implementation.

Calling SCNetworkReachabilityFlags() manually is unnecessary, as SCNetworkReachabilityScheduleWithRunLoop() does everything already.
This allows for a much simpler implementation, where a "failed" state is no longer needed. As such, I've changed it to a boolean "initialized", and added a callback so the caller can be notified when initialization completes.