(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.