Merge pull request #91 from peterhuene/customfact/fixes

(CFACT-44) Replace cfacter gem with libfacter Ruby API.
(CFACT-68) add solaris socket libraries to compile

Solaris requires -lsocket for programs using socket api. This patch
adds the -lsocket library if the operating system detected is SunOS
(CFACT-68) Add -Wextra only if the platform is not solaris

The gcc built on solaris complains of problems in compiling logging.cc when
-Wextra is enabled in cfacter. This seems related to https://svn.boost.org/trac/boost/ticket/8811
which complains of same errors. This patch turns off -Wextra when the OS detected is SunOS
(CFACT 68) Use struct utsname when referring to utsname

The utsname is a structure exposed in <sys/utsname.h> unfortunately, in
Solaris, there is a global variable called utsname, which makes the use of
utsname as a type illegal. This patch changes the invocation to `struct utsname`
(CFACT 68) Provide a skeletal add_platform_facts

This comes in in CFACT 70
(CFACT-81) Fix LSB major/minor release resolutions in Ubuntu

Prior to this commit, the LSB release facts were not correctly
parsing Ubuntu's release string to collect its major and minor
versions. This commit updates the LSB facts such that a release
string of '14.04.1' will return a major release of '14.04' and
a minor release of '04', if a minor version is specified.
Merge pull request #93 from whopper/release_fix_ubuntu

(CFACT-81) Fix LSB major/minor release resolutions in Ubuntu
Merge pull request #94 from vrthra/fix/cfact-68/solaris

(CFACT-68) enable solaris compilation
(CFACT-59) Add id and gid facts
Merge pull request #95 from adrienthebo/issue/master/cfact-59-id-gid-facts

(CFACT-59) Add id and gid facts
(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-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).