(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.
(CFACT-124) Refactor uptime resolver to shared base.

Refactoring the uptime resolver into a shared base implementation that
is responsible for defining the facts while the child types are
responsible for collecting the data.
(CFACT-124) Refactor timezone resolver into base implementation.

Refactoring the timezone resolver into a base implementation that is
responsible for adding the facts and child types that are responsible
for collecting data.