(maint) Add cotire to the build to reduce build times.

Adding cotire to our CMake projects which enables two things:

1. Precompiled headers: for incremental builds, this reduces the amount
of time the compiler has to spend parsing system headers.

2. Unity builds: for full builds, this reduces the compile time
significantly by having the compiler compile only a single source file
that includes every other source file.
(maint) Rework logging for unity builds

Use a macro - so it can be redefined in a unity build - in place of a
static variable.
(CFACT-122) Add support for loading libruby with rbenv.

Modifying the libruby discovery logic to check for the install rbenv
versions if rbenv is in use.
Merge pull request #167 from peterhuene/rbenv

(CFACT-122) Add support for loading libruby with rbenv.
Merge pull request #164 from MikaelSmith/maint/master/unity-build-rework-logging

(maint) Use cotire and rework logging for unity builds
(CFACT-110) Add Windows memory facts

Adds memory facts for Windows by implementing the memory_resolver using
a kernel32 API.
(maint) Disable precompiled headers with MinGW

MinGW crashes on sufficiently large precompiled headers. We ran into this
after enabling them with Cotire. Disable precompiled headers when
compiling with MinGW.
Merge pull request #170 from MikaelSmith/maint/master/MinGW-disable-precompiled

(maint) Disable precompiled headers with MinGW
(CFACT-110) Fix for changes to logging
(CFACT-110) Use GetPerformanceInfo's pagefile info

Use GetPerformanceInfo to retrieve total allocated page file space, for
the swap_file facts. That API also provides the same information as
GlobalMemoryStatusEx for global memory.
Merge pull request #166 from MikaelSmith/task/master/CFACT-110-Windows-memory-facts

(CFACT-110) Add Windows memory facts
(CFACT-111) Add processor facts for Windows

Adds processor facts on Windows using kernel32 API calls.
(maint) - Removing log4cxx dependencies for debian

Removing log4cxx dependencies from ext/debian/control; we don't use that
framework for logging. Minor correcction to code example in README.
Merge pull request #172 from parisiale/maint_dependencies

(maint) Removing log4cxx dependencies for debian
(maint) Improve default output of structured facts.

For map and array values, cfacter attempted to maintain compatibility
with facter's output. Unfortunately, facter's output makes it really
hard to read map and array values.

This change "pretty prints" map and array values by default, making the
output much easier to read.
(CFACT-111) Avoid assert and clarify naming

Use logging instead of asserts (for release checking) and clarify naming
of references to objects returned by GetLogicalProcessorInformation.
(maint) Update debian packaging to build with correct dependencies

We've removed log4cxx and re2 as dependencies for cfacter, replaced with
boost.log and boost.regex. This requires those obsolete pacakges to be
pulled out of the control file, and the correct boost package to be
added.
(maint) add libdl explicitly

Prior to this commit, building cfacter would result in the following
error:
```
../libfacter.so.0.2.0: undefined reference to `dlopen'
../libfacter.so.0.2.0: undefined reference to `dlclose'
../libfacter.so.0.2.0: undefined reference to `dlsym'
collect2: error: ld returned 1 exit status
```
which indicates we are not linking that library correctly, if at
all.
Merge pull request #175 from melissaanne/maint/master/add-boost

(maint) Update debian packaging to build with correct dependencies
(maint) Update rpm packaging to use updated boost

We've changed how we build boost. We are now building both pl-libboost
as well as pl-libboost-devel. This will allow us to unstall the minimum
number of files on a production system.