Use instancetype keyword to allow subclassing

Using ```(instancetype)``` instead of ```(Reachability *)``` in method declarations helps the compiler when using Reachability subclasses. Subclassing Reachability can be useful when extending its possibilities or adding helper functions.