(CFACT-124, CFACT-76) Refactor resolver implementation so that Windows can share base types.

This set of commits refactors the resolvers across all platforms into a base type that is responsible for adding facts.  The child types now are only responsible for returning data to the base type to populate the facts.

A few new structured facts are added with these changes, including the "networking" and "ssh" facts.

Additionally, the "lsb" structured fact under the "os" has been renamed to "distro" and the redundancy in attribute names has been removed.
I haven't figured out what we want to do with these facts yet.  They were added recently and are too "generic" to be Solaris-specific.  They also largely overlap with the "block devices" fact from Linux.  Part of this refactoring is an attempt to "organize" our facts so they're not a haphazard mess.