(maint) Return unique_ptr<T> from make_value.

Instead of returning unique_ptr<value> from the utility function make_value, return unique_ptr<T> instead.
unique_ptr<T> can be safely moved into unique_ptr<value> (where T derives from value).
This makes using array and map values easier.
(maint) Fix domain and fqdn facts when domain resolves to hostname.

In the case where the domain is the same as the hostname, treat it like the domain could not be resolved.
This prevents us from setting the domain and fqdn facts to the same value as the hostname.
Ruby facter returns nil for domain and fqdn facts under this condition.
(CFACT-33) Add dhcp_servers fact for OSX and Linux.

Adding a dhcp_servers fact for OSX and Linux.
Adding logic to discover the primary interface based on routing
information.  We still fall back to first interface with an assigned
address if need be.
(maint) Update example in README to configure log4cxx.

Adding code to example to configure log4cxx.
Without this, users would get a warning from log4cxx.