(CFACT 70) Add kernel facts for solaris

Before this patch, the Solaris operating system did not produce kernel facts.
Unfortunately the posix kernel facts could not be used as it relied on the uname()
system call, which according to posix, returns zero on success. However, on solaris,
it returns it returns any positive value on success[1]

This patch adds the solaris kernel facts which checks the return value of uname
system call correctly for solaris.

[1] http://www.opensolarisforum.org/man/man2/uname.html
(CFACT 70) Add posix::ssh facts for solaris

Before this patch, the Solaris operating system did not include ssh facts.
This patch adds the posix ssh facts, which works asis in solaris.
(CFACT 70) Add posix::operatingsystem facts for solaris

Before this patch, the Solaris operating system facts were not included.
This patch adds the posix operating system facts, which works asis in solaris.
(CFACT-62) Add timezone fact
Merge pull request #98 from adrienthebo/issue/master/cfact-62-timezone

(CFACT-62) Add timezone fact
Merge pull request #96 from vrthra/fix/cfact-70/solaris-kernelfacts

(CFACT-70) add solaris kernelfacts from uname
(CFACT-58) Implement si_string and percentage utility string functions.

Implement a "si_string" function that converts a byte count to an amount
with the largest SI-suffix (e.g. 1025 bytes => 1.00 KiB).

Implement a "percentage" function that converts an amount used out of a
total to a percentage string (e.g. 9094 out of 10000 => "90.94%").
(maint) Removing facter::util::join.

Boost already implements this string algorithm.
(CFACT-58) Implement mountpoints and filesystems fact for BSD/OSX.

Implementing the mountpoints (structured) and filesystems (flat) fact for BSD/OSX.

The filesystems fact lists the mounted file system types.

The mountpoints fact is a new structured fact that describes the mounted file systems in detail.
(maint) Fix missing documentation in logging header.

Fixing missing documentation in logging header.
Adding a missing doc comment for a define.
Moving some BOOST constants into the .cc.
Fix /* to /** to properly treat the comments as doxygen comments.
(CFACT-58) Implement mountpoints and filesystems facts for Linux.

Implementing the mountpoints (structured) and filesystems (flat)
facts for Linux.

The filesystems fact lists the file system types supported by the
kernel.

The mountpoints fact is a new structured fact that describes the
mounted file systems in detail.
(CFACT-58) Implement the Linux partitions fact.

Implementing the partitions fact for Linux.

We also implement the following attributes for each partition:

* partuuid - The partition UUID (as opposed to the filesystem UUID).
* label - The partition's label.

This takes a new build-time dependency on libblkid (blkid was a
runtime dependency of Ruby Facter).
(CFACT-58) Make blkid and openssl dependencies optional.

This commit makes blkid and openssl an optional build-time dependency.

If blkid isn't installed at build time for Linux, the partitions fact will be unavailable.

If openssl isn't install at build time, the SSH fingerprinting facts will be unavailable.

The dependencies can also be disabled using "-DWITHOUT_OPENSSL=1" and "-DWITHOUT_BLKD=1"
when configuring cmake.