(CFACT-124) Refactor kernel resolver into a base that can be used by Windows.

The base resolver is now responsible for adding the facts.  The POSIX child
type gets the data only.

This will allow us to share the fact definitions between POSIX and Windows.
(maint) Add missing doc comments.

Adding missing doc comments to make doxygen happy.
(CFACT-124) Refactor base DMI resolver so it can be shared by Windows.

Refactoring the base DMI resolver to keep the fact definitions in a
single place (the base).  The child types are only responsible for
returning data to the parent.
(CFACT-124) Refactor filesystem resolver into a base implementation.

Refactoring the filesystem resolver into a base implementation that is
responsible for the fact definition.  Child types are only responsible
for populating the data.
(CFACT-124) Refactor identity resolver into a sharable base.

Refactoring identity resolver into a shared base implementation.  The
base implementation is responsible for adding the facts (single
definition) while the child types are responsible for collecting the
data.
(CFACT-124) Refactor memory resolver into a sharable base.

Refactoring the memory resolver into a common base implementation.  The
base implementation is responsible for the fact definition while the
child types are responsible for collecting the data.
(CFACT-124) Refactoring operating system resolver.

Refactroing the operating system resolver into a base that is
responsible for adding the facts and child types that are responsible
for collecting data.  This allows it to be shared with Windows.