(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) Refactor operating system resolver.

Refactoring 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.

This refactoring also merges the LSB resolver in with the operating
system resolver.

Breaking change: some of the names on the os structured fact have
diverged from Facter 2.2 to clean up the less than ideal naming. We need
to investigate if this will be impactful and how to mitigate.
(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.
(CFACT-124) Refactor virtualization resolver into base type.

Refactoring the virtualization resolver into a base type that is
responsible for adding the facts and child types that are responsible
for collecting data.
(CFACT-124) Refactor block device resolver.

Refactoring the block device resolver into a base type responsible for
adding the facts and child types that are responsible for collecting
data.

This also adds the "blockdevice" structured fact representing block
device data.  Unfortunately "blockdevices" is an already existing fact
name.
(CFACT-124) Refactor SSH resolver into base type.

Refactoring the SSH resolver into a base type responsible for adding
facts and child types that are responsible for collecting SSH key data.

This also adds the ssh structured fact.
(CFACT-124, CFACT-76) Refactor networking resolver.

Refactor the networking resolver into a base type that is responsible
for adding a fact and child types that are responsible for collecting
data.  This keeps the fact definition in one place and allows Windows to
share the base implementation.

This commit also adds a structured "networking" fact that collects all
networking data into one place.