(CFACT-64) Add structured operating system fact

This commit adds a new 'os' structured fact, which returns a map
including keys for each of the operatingsystem-releated facts. The
fact also includes LSB keys in Linux systems where LSB is available.
(CFACT-97) Resolve operatingsystemmajrelease in Ubuntu

This commit adds Ubuntu to the map of platforms which
are suitable to resolve the operatingsystemmajrelease fact,
and adds the necessary logic to do so.
Merge pull request #100 from whopper/operating_system_structured

(CFACT-64) Add structured operating system fact
(CFACT-51) Windows fix for removing util::string

String utilities were removed in place of Boost on Linux, but relevant
changes weren't made for Windows code. Those fixes are done here.
Merge pull request #120 from MikaelSmith/task/master/CFACT-51-Windows-fix-after-remove-string-util

(CFACT-51) Windows fix for removing util::string
(maint) refacter kstat into its own resource

kstat is a kernel statistics API that present in solaris, and other
operating systems (like FreeBSD). This patch adds a c++ API around the
kstat and related structures so that they can be used correctly, and error
handling is simplified.
(maint) use the new k_stat api for uptime resolver
(maint) use the new kstat api for processor_resolver
(CFACT 92) Add memory facts for solaris

This patch adds support for system memory facts for solaris. Since swap
requires different handling, it is not included in this patch.
(CFACT-103) Add swap memory facts for solaris

This patch adds support for swap memory facts for solaris. It utilizes the
solaris swapctl systemcall to get information about the swap memory.