(maint) Add unit tests for util and execution.

Adding tests for:

- facter::util::file
- facter::util::option_set
- facter::util::posix::scoped_descriptor
- facter::util::posix::scoped_addrinfo
- facter::util::bsd::scoped_ifaddrs
- facter::execution::posix
(maint) Add test target to cmake output.

Adding a test target to cmake output so tests can be run with just "make test".
Updating travis to run tests through ctest.
Updating README to cover running tests.
(maint) Add unit tests for logging.

Adding unit tests for debug, info, warning, error, and fatal logging.
(maint) Add tests for array_value.

Adding unit tests for facter::facts::array_value.
(maint) Add tests for string_value.

Adding tests for facter::facts::string_value.
(maint) Add tests for integer_value.

Add additional unit tests for facter::facts::integer_value.
(maint) Add tests for map_value.

Adding unit tests for facter::facts::map_value.
(maint) Fix Linux physicalprocessorcount fact to handle missing topology information.

CPU topology information may not be present in /proc/cpuinfo.  If it is
missing, we were not properly counting the physical CPUs present on the system.

The fix is to first attempt to use sysfs to count CPUs as it more
reliable for the topology information.  If sysfs isn't present, we fall
back to using topology information in /proc/cpuinfo.

This change matches what we do in Ruby facter.
Merge pull request #32 from peterhuene/fix/processor_facts

(maint) Fix Linux physicalprocessorcount fact to handle missing physical id.
Merge pull request #31 from peterhuene/maint/tests

(maint) Add various unit tests.
(maint) Fix r-value overloads of string utility functions.

The r-value overloads were returning an l-value reference which meant that despite being used, copy assignment/construction would still occur.  Fixing these functions to return an r-value reference.
(CFACT-19) Implement cfacter gem.

Re-implementing the cfacter gem.
Removing JSON dependency on the gem since we now use callbacks to populate a hash instead of emitting and parsing a JSON string.
Setting cfacter to use the Apache 2.0 License, like other Puppet Labs projects.
Adding Rakefile to gem directory with tasks for packaging and installing the gem.
Adding tasks for running specs.
Adding specs that do some basic validation of the CFacter gem.