(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-57) Add facterversion fact
Merge pull request #99 from adrienthebo/issue/master/cfact-57-facterversion-fact

(CFACT-57) Add facterversion fact
(maint) Fix build on OSX from merging in id/gid fact implementation.

Missing an include for OSX.
(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.
Merge pull request #92 from peterhuene/facts/filesystem

(CFACT-58) Implement file system facts for OSX and Linux.
(CFACT-44) Fix calling resolution block twice from Facter.add.

The block given to Facter.add is inadvertently being called twice.
This went unnoticed because most facts created with Facter.add
simply do setcode / chunk / aggregate calls and that modifies
the state of the resolution before the value is resolved.

This was caused during a refactoring where define_resolution
executed the block.  The code for Facter.add was also executing
the given block.  Facter.add should rely on define_resolution
to execute the block.

Additionally, the protect call was unnecessary since there were
no instances of types with destructors being declared.
(CFACT-44) Log a warning when custom facts attempt to use the timeout option.

Log a warning once when the :timeout option is specified in Facter.add.

Log a warning once when timeout= is called from a resolution.
(maint) Fix build dependency finding to support CMake hint variables.

Adding back support for a <packagename>_ROOT CMake variable that
gives a hint to where dependencies can be located.

Also adding support for <packagename>_INCLUDEDIR for an include
directory hint and a <packagename>_LIBRARYDIR for a library
directory hint.