IsReachable is the inverse of IsLimited, but the implementation is duplicated (DRY)
- Changed the implementation accordingly.
- Added unittests to document behavior and relationship
- Unittests have to reset values because of internal statefull variables.
- My modification in net.cpp applies only to IsReachable.
- Applied clang -> (unfortunately) lots of changes on formatting