Added support for FreeBSD block devices
update blockdevice_device_model for FreeBSD

- include support for mfi disks.
  since it is a abstracted raid disk, the output will simply be "MFI
  Local Disk", as that seemed the simplest way to handle this problem.
Improve FreeBSD blockdevice facts

- Hardwire the size of CD drives to zero. diskinfo runs into errors
  when querying empty drives.

- Use a different camcontrol command when dealing with ATA drives and
  ATA-CAM is used.

- split FreeBSD blockdevice facts now we get model and vendor, just
  like on Linux
Add freeBSD facts
(#17710) Refactor the IP module

This pull request aims to refactor the Facter::Util::IP module with kernel
specific classes adhering to a common interface. This pull request eliminates
case statements and crazy kernel conditionals within methods. Additionally, this
eliminates the giant REGEX_MAP constant at the top of the Facter::Util::IP
module and adds some documentation to methods that were previously left
undocumented.

The related ticket is here: http://projects.puppetlabs.com/issues/17710
Merge branch 'razic-fix/2.x/17710_ipmodule_refactor'

* razic-fix/2.x/17710_ipmodule_refactor:
  (#17710) Refactor the IP module

closes #406
Remove CHANGELOG from Facter

This commit removes the CHANGELOG file in the top level
of facter, which only contains commit hashes/ messages
from the previous releases, and is of debatable utility.
This information can be gleaned easily from a git log,
and is not of much use without git. Removing it removes
yet another manual process from the releasing of facter.

It also removes references of the CHANGELOG from the packaging.

This commit was merged into 1.6.x but the CHANGELOG returned to the 1.7.x
branch. This is a cherry-pick of that commit into 1.7.x.

Conflicts:
	CHANGELOG
	install.rb
(packaging) Make dmidecode arch specific on debian

The dmidecode package on debian is only available on ia64, amd64 and i386, and
not for other arches such as arm. This pull request makes dmidecode only
required for those arches where it is available. This has the side effect of
making facter on debian arch specific.
(packaging) Add amd64 cows to the cows in build_defaults

Now that dmidecode is an arch specific dependency of facter, it is no longer
possible to build a noarch/all package using one cow per dist. This commit adds
an amd64 cow to each of the dists so that both i386 and amd64 packages are
built for facter.
Merge pull request #415 from haus/reremove_changelog

Remove CHANGELOG from Facter
Merge pull request #416 from haus/packaging/1.7.x/make_dmidecode_arch_specific

Packaging/1.7.x/make dmidecode arch specific
(packaging) Add dependency on virt-what for rpm and deb packages

In commit cf43fc0092f0476d378ea05dd8e21fc170a51bdf (#8210), virt-what was added
as a utility for better virtualization detection. Without virt-what installed,
that better detection is not available, so this commit adds virt-what as a
dependency for debian and rpm packages. virt-what is a lightweight package
(~25k), that is available on all currently supported flavors of debian and rpm
based systems.
Merge pull request #417 from haus/packaging/1.7.x/add_virt_what_dependency

(packaging) Add dependency on virt-what for rpm and deb packages
(packaging) Update FACTERVERSION to 1.7.0-rc1
Revert #406

This reverts commit 674689501fcefdfe8cfbe35e19391ebcbf6d357d, reversing
changes made to 435664829e3a8ec98aed2c38bc3f625db38b84e3.

This change set is being reverted because we're seeing the following
issue when running Facter on Linux and Darwin:

    $ facter
    Could not retrieve network_gif0: undefined local variable or method `label' for Facter::Util::IP:Module
    Could not retrieve network_en1: undefined local variable or method `label' for Facter::Util::IP:Module
    Could not retrieve network_vboxnet0: undefined local variable or method `label' for Facter::Util::IP:Module
    Could not retrieve network_stf0: undefined local variable or method `label' for Facter::Util::IP:Module
    Could not retrieve network_fw0: undefined local variable or method `label' for Facter::Util::IP:Module
    Could not retrieve network_vmnet1: undefined local variable or method `label' for Facter::Util::IP:Module
    Could not retrieve network_lo0: undefined local variable or method `label' for Facter::Util::IP:Module
    Could not retrieve network_en0: undefined local variable or method `label' for Facter::Util::IP:Module
    Could not retrieve network_p2p0: undefined local variable or method `label' for Facter::Util::IP:Module
    Could not retrieve network_vmnet8: undefined local variable or method `label' for Facter::Util::IP:Module
Merge branch 'revert_pr_406'

* revert_pr_406:
  Revert #406
(maint) Fix unhandled exception when zoneadm is missing

Without this patch the puppet master spec examples are currently failing
when run on Solaris 10.  The root cause of this failure is an assumption
that the `zoneadm` command is always available on Solaris 10 systems.

Because of this assumption, the method that parses out the zone
information tries to call split on an instance variable that is assumed
to be a string, but is actually `nil` when the `zoneadm` command is
missing.

This patch addresses the problem by checking if the instance variable is
truthy and only then calling the split method on it.  Otherwise a debug
message records the fact that the zoneadm command is not available which
causes the zone facts to be unset.
Merge branch '1.7.x'

* 1.7.x:
  (maint) Fix unhandled exception when zoneadm is missing
  (packaging) Update FACTERVERSION to 1.7.0-rc1
  (packaging) Add dependency on virt-what for rpm and deb packages
  (packaging) Add amd64 cows to the cows in build_defaults
  (packaging) Make dmidecode arch specific on debian
  Remove CHANGELOG from Facter

Conflicts:
	lib/facter/version.rb
(#19989) Filter virt-what warnings from virtual fact

Presently, the virt-what command puts errors on stdout, prefixed with
virt-what:.  This ends up in the virtual fact, which is undesirable.

When a fixed virt-what is released and available for supported systems,
the 'output.gsub /^virt-what: .*$/' can be removed from
Facter::Util::Virtual::virt_what().

A virt-what fix was committed upstream¹.

Thanks to Adrien Thebo for help on making this testable.

¹ http://git.annexia.org/?p=virt-what.git;a=commitdiff;h=2f47e06
Merge branch 'pull-413' into 1.7.x