Merge pull request #69 from peterhuene/cfact/40

(CFACT-40) Refactor fact evaluation for future custom fact support.
(maint) Fix passing filter set by const-ref instead of by value.

We should be passing this parameter by const-ref instead of by value.
Merge pull request #70 from peterhuene/maint/byvalue

(maint) Fix passing filter set by const-ref instead of by value.
(maint) Implement directory enumerating utility functions.

Implementing directory::each_file and directory::each_subdirectory for enumerating directory contents.

Replacing existing uses of directory iterators with the above utility functions.
(maint) scoped_resource should not have default move semantics.

scoped_resource should implement the moving semantics to appropriately modify the other scoped_resource such that the original scoped_resource does not attempt to release the resource.
(maint) Move file utility functions into a type.

Rather than creating a sub-namespace from the util namespace,
scope the file utility functions in a type.  This makes it
more consistent with other utility types.
(maint) Implement environment utility class for manipulating environment variables.

Adding an environment utility class for getting and setting environment variables.
This type is also responsible for specifying the platform-specific path delimiter.
(maint) Fix log message casing.

Fixing all LOG_* macro messages to start with a lowercase character for consistency.
(CFACT-43) Implement Ruby API.

Implementing dynamically loading and binding to MRI.
Loading custom fact files into the Ruby VM.
The Facter interop layer isn't yet implemented, so custom facts will currently fail to load.
(maint) Remove dead source code.

Removing fact.cc since it isn't actually being used any more.