(CFACT 70) Correct the operating system resolver to match facter

Previously, cfacter output for osfamily (SunOS), operatingsystemrelease(5.10),
and operatingsystem (SunOS) depended on the posix implementation. However,
the ruby facter implementation provides osfamily (Solaris),
operatingsystemrelase (10_u11), and operatingsystem (Solaris) which are
different from the barebones posix. This patch corrects the cfacter so that
it outputs values matching ruby facter.
(CFACT 70) Correct the kennel resolver to match facter for solaris

Previously, cfacter output for kernelversion and kernelmajorversion (5.10),
were not in line with the ruby facter output (Generic_xxx).
This patch corrects the cfacter so that it outputs values matching ruby facter.

To do this, the kernelversion and kernelmajorversion needs access to the uname
output. This patch adds two virtual functions that are wrappers of the
originals that can take uname output, and are called instead by the
resolve_facts method.