(Maint) Remove loader test dependence on ENV

Previously the test for checking that FACTER_* environment variables get
turned into facts was sensitive to the actual environment variables with
which the test ran. This caused incorrect test failures if there was
such an environment variable during the test run. This changes the
loader to be able to be given the environment hash that it should look
at and changes the tests to stop relying on the environment for testing.
(Maint) Remove unneeded mocking

There were mocks for something called 'settings', which were never used.
This removes them.
(#17794) remove :kernel confinement of {zfs,zpool}_version

As ZFS is now available on more or less every Solaris and BSD variant,
as well as on Linux (via FUSE), it doesn't make sense to confine these
facts to an evergrowing list of kernels.

This patch:
 - removes every reference to :kernel, as well as the SunOS/FreeBSD
   subsections from the tests
 - runs the "setcode" block only if the zfs/zpool commands are present
   on the system, and adds a test for this case
 - adds sample output of zfs/zpool on Linux (FUSE) to fixtures + a test
   using them
 - removes the "should not run on Linux" test.

The zfs/zpool providers in puppet have been recently updated in a
similar fashion (55f953bc).
Merge branch 'mfournier-tickets/1.7.x/17794' into 1.7.x

* mfournier-tickets/1.7.x/17794:
  (#17794) remove :kernel confinement of {zfs,zpool}_version
Merge branch '1.7.x' into 2.x

* 1.7.x:
  (#17794) remove :kernel confinement of {zfs,zpool}_version
Merge branch '2.x'

* 2.x:
  (#17794) remove :kernel confinement of {zfs,zpool}_version
(#17794) Specify how zfs facts behave when tools are configured

Without this patch applied we don't have an example of how the
zfs related facts behave when the client tools are configured after the
facts have been defined and loaded but before they've been resolved most
recently.

The expectation expressed by this patch is that the facts will resolve
when the client tools are available and will not resolve if the client
tools are not available.  Installing the client tools should be
sufficient to cause the facts to resolve.

This patch also changes the implementation to make the expected behavior
of refreshing the fact values using the code specified in the setcode
block.

Squash into
Merge branch 'maint/1.7.x/zfs_resolvers' into 1.7.x

* maint/1.7.x/zfs_resolvers:
  (#17794) Specify how zfs facts behave when tools are configured
Merge branch '1.7.x' into 2.x

* 1.7.x:
  (#17794) Specify how zfs facts behave when tools are configured
Merge branch '2.x'

* 2.x:
  (#17794) Specify how zfs facts behave when tools are configured
(#16626) Fix handling of bonded Linux interfaces

Array#to_s doesn't produce the right format for hwaddrre to match, so
use #join instead.
(#16626) Exercise IP.get_interface_value("bond0","macaddress")

Without this patch, the behavior of the utility method
Facter::Util::IP.get_interface_value("bond0", "macaddress") has no
examples in the form of automated tests.

This patch adds test coverage for this specific code path.
(Maint) Add YARD doc for get_interface_value

Without this commit there is no clear documentation for the
Facter::Util::IP.get_interface_value class method.  This is a problem
because the method behaves unexpectedly in some situations and is not
intended for public API use.

This patch fixes the problem by clearly documenting the method and
marking it as a private API.
Merge branch 'josb-ebaysf-ticket/1.6.x/16626_ruby_19_compat_fix' into 1.6.x

* josb-ebaysf-ticket/1.6.x/16626_ruby_19_compat_fix:
  (Maint) Add YARD doc for get_interface_value
  (#16626) Exercise IP.get_interface_value("bond0","macaddress")
  (#16626) Fix handling of bonded Linux interfaces
Merge branch '1.6.x' into 1.7.x

* 1.6.x:
  (Maint) Add YARD doc for get_interface_value
  (#16626) Exercise IP.get_interface_value("bond0","macaddress")
  (#16626) Fix handling of bonded Linux interfaces
Merge branch '1.7.x' into 2.x

* 1.7.x:
  (Maint) Add YARD doc for get_interface_value
  (#16626) Exercise IP.get_interface_value("bond0","macaddress")
  (#16626) Fix handling of bonded Linux interfaces
Merge branch '2.x'

* 2.x:
  (Maint) Add YARD doc for get_interface_value
  (#16626) Exercise IP.get_interface_value("bond0","macaddress")
  (#16626) Fix handling of bonded Linux interfaces
Add quantal to default cows list.
Merge pull request #373 from haus/maint/1.6.x/add_quantal_cow

Add quantal to default cows list.
Merge branch '1.6.x' into 1.7.x

* 1.6.x:
  Add quantal to default cows list.