Improve documentation in the header
Update the Readme
Use NS_ENUM rather than a straight enum
Modernise the implementation

Some minor changes to the documentation as well.
Add Mike Ash style constants for keys

Makes it easier for KVO.
Add a convenient reachabilityFlagsAsString method

Useful for logging, debugging.