(CFACT-88) Replace string utility functions with those in Boost.

Replacing the following string utility functions with Boost string
algorithms:

* starts_with
* ends_with
* ltrim
* rtrim
* trim
* tokenize
* split
* to_lower
* to_upper

Also removing the unused ci_string type.  Boost has functionality for
doing case insensitive comparisons.
(CFACT 70) Add processor facts for solaris

This patch adds solaris specific processor facts. For this it utilizes the
kstat linked datastructure, which is added in by kstat library. Solaris
has the concept of three levels of processing units: physical CPUS, multiple
cores per CPU and, multiple hardware threads per core. This is reflected in
the provided facts.
(CFACT 70) Add posix facts id and timezone to solaris

This patch adds the posix timezone and id facts (unchanged) to solaris
These are the only posix facts left that can be added directly to solaris
without change in behavior.
(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.
Merge pull request #108 from vrthra/fix/cfact-70/add-processor-facts

(CFACT-70) Add processor facts for solaris
(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.
Merge pull request #111 from vrthra/fix/cfact-70/add-posix-facts-solaris

(CFACT-70) Fix Kernel and OS facts for solaris and add id and timezone posix facts
Merge pull request #109 from peterhuene/maint/strings

(CFACT-88) Replace string utility functions with those in Boost.
(CFACT-88) Fix usage of string utility functions.

Fixing pre-mature merge that left a usage of the old string util
functions from the Windows code.

Fixing starts_with on a to_lower to just be istarts_with (case
insensitive).
(CFACT 70) Add filesystem facts for solaris

Before this patch, solaris did not provide the filesystem facts. This patch
adds support for filesystem facts for solaris. Unlike linux, there is no direct
means to find supported filesystems, and hence we use the bsd approach, and
list only the currently in use filesystems. We also leave the partitions
support unimplemented for now.
(CFACT-60) Implement memory facts for Linux.

Implementing the following facts for Linux:

* memory - structured fact containing all memory facts
* memfree - free memory
* memfree_mb - free memory in mebibytes
* memsize - total size of memory
* memsize_mb - total size of memory in mebibytes
* swapfree - free swap
* swapfree_mb - free swap in mebibytes
* swapsize - size of swap
* swapsize_mb - size of swap in mebibytes
(CFACT-60) Implement memory facts for OSX.

Implementing the following facts for OSX:

* memory - structured fact containing all memory facts
* memfree - free memory
* memfree_mb - free memory in mebibytes
* memsize - total size of memory
* memsize_mb - total size of memory in mebibytes
* swapfree - free swap
* swapfree_mb - free swap in mebibytes
* swapsize - size of swap
* swapsize_mb - size of swap in mebibytes
* swapencrypted - whether or not the swap is encrypted
(maint) Fix comparison of function return values to zero.

In a few places we were comparing certain function return values to "not
0" to check for an error condition.  The documentation of these
functions indicate that they return -1 as expected on error.  Therefore,
the comparison should be to -1.
Merge pull request #115 from peterhuene/maint/fix

(CFACT-88) Fix usage of string utility functions.
Merge pull request #114 from vrthra/fix/cfact-70/solaris-filesystems

(CFACT-70) Add filesystem facts for solaris
(maint) Fix Linux partition fact attribute names.

During the Boost function refactoring, tag_value was used for the
attribtue instead of tag_name.  This resulted in the partitions fact
having correct values, but incorrect keys (the keys were the same as the
value).

The fix is to use the appropriate name coming back from blkid_tag_next.
(maint) Remove dead code.

Some dead code made it through a PR.  This line is unncessary and should
be removed.
Merge pull request #116 from peterhuene/maint/fix

(maint) Fix Linux partition fact attribute names.
(CFACT-80) Update extensibility doc for 0.2.0.

Updating the extensibility doc for 0.2.0's support of custom facts.
Merge pull request #113 from peterhuene/facts/memory

(CFACT-60) Implement memory facts for Linux and OSX.