(maint) Rename fact_resolver to simply "resolver".

The name "fact_resolver" is a bit redundant and we already use
"resolver" in the external namespace for external fact resolvers.
Therefore, renaming "fact_resolver" to simply "resolver".
(maint) Rename "fact_map" to "collection".

Renaming "facter::facts::fact_map" to "facter::facts::collection".

The name "fact_map" is a little redundant (it's already in the "facts"
namespace).
(maint) Replace write_json, write_yaml, and operator<< with write.

Replacing write_json, write_yaml, and operator<< with a single write method
that takes the format to use as an option.
(maint) Fix potential fact resolution cycle in OS fact resolver.

The POSIX OS fact resolver references the operatingsystem fact while
resolving the osfamily fact.  However, it does not pass false while
retreiving the fact, causing a cycle if the kernel fact wasn't present
for some reason.
(maint) Add a can_resolve member to external fact resolvers.

Currently the resolve member of external fact resolvers returns false if
the resolver isn't responsible for files of the given type.

This logic belongs in a "can_resolve" member that can be used to check
if the resolver can resolve facts in the given file.

This allows the fact collection to be able to map an external facts file
to the responsible resolver.
(CFACT-40) Refactor fact evaluation for future custom fact support.

Refactoring facterlib for the coming support of custom facts:

* Adding --custom-dir and --no-custom-facts command line optinons (not yet implemented).
* Refactoring fact evaluation so that custom facts can add resolvers via a Ruby API.
* Resolvers can now overlap on the facts they resolve; the last resolver that was added to the collection will be the one that resolves the fact.
(maint) Update README example for API changes.

Updating the example in the README for recent API changes.
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.
(CFACT-47) Retry after read failure, as suggested in POSIX documentation.
Merge pull request #73 from MikaelSmith/master

(CFACT-47) Retry after read failure, as suggested in POSIX documentation...
(CFACT-48) Add structured uptime fact

This commit adds a new 'system_uptime' fact,
which returns a map including keys for seconds,
hours, days and a human readable uptime.

Also, the existing uptime facts were updated to
take their values from this new structured fact,
rather than resolving them individually.
Merge pull request #72 from whopper/structured_uptime_fact

(CFACT-48) Add structured uptime fact
(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.