(maint) Update facts to use Facter::Core::Execution

When Facter::Core::Execution was extracted, aliases were added from
Facter::Util::Resolution to Facter::Core::Execution for compatibility.
This commit updates all facts using execution methods to use the new
code directly instead of relying on an alias.
(FACT-322) Remove special casing of resolution command

Resolutions could accept either a command to execute or a block to run
to evaluate when resolving. However this behavior meant that special
behavior had to be inserted into the execution command in case a command
returned nil. This commit converts the #setcode(String) invocation to
create a block that will evaluate a command and normalize the output so
that Facter::Core::Execution doesn't have to be responsible for this.
(FACT-322) Remove execution empty string special casing

This removes the special casing for commands that return the empty
string. Callers that were checking the result of .exec with a boolean
check will need to call #empty? on the result.
(FACT-322) Remove fact special casing of empty string

When facts were evaluating resolutions, return values that were either
the empty string or nil would be ignored. This commit removes the
special casing on the empty string and fixes up some resolutions that
were relying on the behavior.
Merge pull request #637 from adrienthebo/feature/facter-2/fact-322-remove-special-casing-of-empty-string

Feature/facter 2/fact 322 remove special casing of empty string
(FACT-332) Add cfpropertylist task to facter

As cfpropertylist is no longer vendored within facter, but it is still needed
at runtime for facter, this commit adds a simple task to fetch, unpack, and
stage cfpropertylist within the facter libdir, where it will be installed
automatically in the apple package. This task is intended to be used only when
building apple packages.
(FACT-332) Make the package:apple task depend on cfpropertylist

Now that the cfpropertylist task exists, this commit defines it as a pre-task
for the package:apple task. This will ensure that cfpropertylist is fetched and
unpacked before making the apple package, but not before other packaging
tasks, such as deb or rpm.
(maint) Load extra tasks before loading packaging

Because the apple task now depends on the cfpropertylist task, the packaging
will verify that such a task exists when loaded. This means that the extra
facter tasks must be loaded before we load the packaging tools. This commit
moves the facter task loading to before the packaging tool loading.
Merge pull request #638 from haus/ticket/facter-2/fact_332_add_cfp_at_build_time

Fetch and unpack cfpropertylist at build time for apple packages
(FACT-332) Warn when the packaging tasks aren't loaded
Merge pull request #639 from haus/ticket/facter-2/fact_332_add_cfp_at_build_time

(FACT-332) Warn when the packaging tasks aren't loaded
(maint) Return the empty string on exec error

Commit 8a14998 removed most of the special casing around executing
commands and changed calling code to always assume that .exec would
return a string. However the error cases in .exec would still return
nil which would break this assumption.

This commit updates .exec to return the empty string on error. It's
somewhat questionable to do this but if we want to fail hard on errors
we should raise an exception instead of returning nil.
Merge pull request #640 from adrienthebo/maint/facter-2/solaris-uptime-error

(maint) Return the empty string on exec error
(doc) Update documentation for Exection.exec
Merge branch 'facter-2'

Conflicts:
	lib/facter/filesystems.rb
	lib/facter/hostname.rb
	lib/facter/kernelrelease.rb
	lib/facter/lsbdistcodename.rb
	lib/facter/lsbdistid.rb
	lib/facter/lsbdistrelease.rb
	lib/facter/lsbrelease.rb
	lib/facter/memory.rb
	lib/facter/physicalprocessorcount.rb
	lib/facter/processor.rb
	lib/facter/selinux.rb
	lib/facter/util/ec2.rb
	lib/facter/util/ip.rb
	lib/facter/util/manufacturer.rb
	lib/facter/util/memory.rb
	lib/facter/util/uptime.rb
	lib/facter/util/virtual.rb
	lib/facter/util/xendomains.rb
	lib/facter/virtual.rb
	lib/facter/zfs_version.rb
	lib/facter/zpool_version.rb
	spec/unit/filesystems_spec.rb
	spec/unit/kernelrelease_spec.rb
	spec/unit/memory_spec.rb
	spec/unit/physicalprocessorcount_spec.rb
	spec/unit/processor_spec.rb
	spec/unit/selinux_spec.rb
	spec/unit/util/ec2_spec.rb
	spec/unit/util/ip_spec.rb
	spec/unit/util/virtual_spec.rb
	spec/unit/util/xendomains_spec.rb
	spec/unit/virtual_spec.rb
	spec/unit/zfs_version_spec.rb
(maint) zoneadm_output should always be a string
(maint) Add zone_global_uuid to schema
Merge branch 'maint/facter-2/solaris-zone-uuid' into facter-2
Merge branch 'facter-2'