Merge pull request #62 from melissaanne/master

(RE-2111) Add brew recipe for cfacter.
(CFACT-36) Add missing gem methods for Facter compatibility.

Adding missing cfacter gem methods for compatibility with the existing
Facter API and how it is used in Puppet.

Adding search, search_path, and search_external_path methods.  Currently
the search/search_path methods do not have any effect on fact resolution
as Ruby facts aren't yet supported. However, cfacter will store and
return the given paths.

Adding a [] method that returns a Fact object with name and value attributes.

Adding a reset method that clears the facts and also the search paths.
(CFACT-37) Close open file descriptors before exec.

To ensure open file descriptors aren't leaked to spawned child
processes, close all open file descriptors above 2 (stderr) before
calling exec.
(CFACT-39) CMAKE should work with boxen installed homebrew

Currently if you have installed boxen and are using homebrew through that
facility, attempting to build cfacter results in much drama in the lands.
However this appends those specific search paths for boxen/homebrew to both
`CMAKE_LIBRARY_PATH` / `CMAKE_INCLUDE_PATH`. And there was much rejoicing...
Merge pull request #64 from ferventcoder/ticket/master/CFACT-39-cmake-boxen

(CFACT-39) CMAKE should work with boxen installed homebew
Merge pull request #61 from peterhuene/gem/methods

(CFACT-36) Add missing gem methods for Facter compatibility.
(maint) Updating version numbers to 0.2.0.

Bumping the version number to 0.2.0.  Although the actual 0.2.0 release
is a little ways off into the future, this will allow users to test
cfacter with Puppet from master.
Merge pull request #65 from peterhuene/bump/version

(maint) Updating version numbers to 0.2.0.
Merge pull request #63 from peterhuene/cfact/37

(CFACT-37) Close open file descriptors before exec.
(CFACT-38) Change output directory for cfacter from 'exe' to 'bin'.

Changing the output directory of the cfacter executable from 'exe' to
'bin'.  This makes it more consistent with other directory structures.
Merge pull request #66 from peterhuene/cfact/38

(CFACT-38) Change output directory for cfacter from 'exe' to 'bin'.
(CFACT-42) Normalize external fact names to lowercase.

When processing JSON, YAML, text, and executable external facts,
normalize the fact names to lowercase to match how facter handles
external fact names.
(CFACT-41) Use resolv.conf for domain name fact resolution.

If we can't resolve the hostname, look for domain and search entires in
/etc/resolv.conf.

This allow us to conform to what facter is doing even when the hostname
is not resolvable.
Merge pull request #67 from peterhuene/cfact/41

(CFACT-41) Use resolv.conf for domain name fact resolution.
Merge pull request #68 from peterhuene/cfact/42

(CFACT-42) Normalize external fact names to lowercase.
(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.