(#20229) Fix per-interface netmask_* facts with net-tools 1.60

Without this patch the interface specific facts for the netmask are not
correctly parsed on systems with net-tools 1.60 or later, such as
Archlinux.

This patch addresses the problem by adjusting the regular expression to
take into account the new format of the ifconfig command.

This patch is specific to the netmask_* facts and does not affect the
behavior of the general `netmask` fact.
(#20229) Fix netmask fact with Linux net-tools 1.60

Without this patch the netmask fact does not return a value on Archlinux
because of the new format of the net-tools package.

This patch addresses the problem by updating the regular expressions for
the netmask fact.  Both the old format and the new format are covered by
the regular expression now.
(maint) De-duplicate parses RSpec alias

Adrien pointed out the duplication of

    RSpec.configure do |config|
      config.alias_it_should_behave_like_to :example_behavior_for, "parses"
    end

in both of the interfaces_spec file and the netmask_spec file.  This
patch removes the duplicate statements and places them in a shared file
required by both example specs.
Merge pull request #432 from jeffmccune/fix_netmask_scanner

(#20229) Fix per-interface netmask_* facts with net-tools 1.60
(Maint) Remove whitespace errors
(#20938) Ignore stderr from domain commands

Previously, when the hostname of a system is in a messed up stated, the
hostname and dnsdomainname commands would output warning messages to
stderr. The facter command execution system does not capture this, and
so the stderr output ends up making it all the way out to the caller and
likely to the user, as is the case for puppet when using facter.

This commit takes the simple approach of redirecting the error output to
/dev/null, which should be sufficient for the platforms that use these
commands (non-windows).
(Maint) Remove duplication in domain tests

The tests were full of duplication around what commands would be
executed and how. This works toward removing the duplication and even
combines two tests together to provide a less implementation specific
assertion about the precedence of the resolv.conf data.
Merge pull request #445 from zaphod42/issues/stable/20938-noise-on-stderr-from-domain-fact

(#20938) Ignore stderr from domain commands
(#20915) Read dmi entries as binary data

The DMI entry information that is read to determine the virtual platform
is actually binary data. When it is interpreted as an encoded string,
then there will be encoding errors. This changes it to be read in "rb"
mode, which has nearly no effect on ruby 1.8.7, but causes it to be read
as Encoding::ASCII_8BIT on ruby 1.9.3 (which is how ruby deals with
binary data).
Merge pull request #455 'zaphod42/issue/stable/20915-virtual-fact-causing-utf8-error' into stable

* zaphod42/issue/stable/20915-virtual-fact-causing-utf8-error:
  (#20915) Read dmi entries as binary data
(packaging) Use the packaging loader for tasks

The packaging repo now uses an explicit loader which handles loading the
various rake tasks in packaging. This commit updates the facter Rakefile to use
the loader instead of a blind glob of the ext/packaging/tasks directory. We
move this load into the rescue LoadError block because the packaging repo won't
always be there, and require 'rake' ahead of time.
(packaging) Remove Ubuntu Oneiric from build targets

Oneiric is EOL, and we are no longer building for it. This commit removes the
Oneiric target from the build list for facter.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Merge pull request #460 from MosesMendoza/maint/stable/packaging_loader

(packaging) Use the packaging loader for tasks
Merge pull request #461 from MosesMendoza/maint/stable/remove_oneiric

(packaging) Remove Ubuntu Oneiric from build targets
(packaging) Update FACTERVERSION to 1.7.2-rc1
(#21533) Verify facter doesn't write to stderr

This commit doesn't fix #21533, but it adds an acceptance test to detect
if executing `facter` writes to stdout.
Adding a windows fact for i686 to architecture specs
(#20989) x86 windows hardware model show i686 not i1586

Currently hardware model uses the cpu level when
using 32 bit windows on x64 capable hardware. The
actual architecture is i686 even though it might be
showing as i1586 if the cpu level is 15.

Based on my research on this, all levels above 6
should show the i686 hardware model. i1586 or i1186
would be a misnomer.

This fix adds a check to determine if the cpu level
is over 6 and then responds by setting the
architecture_level (new) to 6, otherwise it uses the
cpu level coming back from the windows processor
query.

Note this only affects windows hardware.
Merge branch 'ticket/stable/20989-windows-x86-reported-wrong' into stable

* ticket/stable/20989-windows-x86-reported-wrong:
  (#20989) x86 windows hardware model show i686 not i1586
  Adding a windows fact for i686 to architecture specs
(packaging) Update FACTERVERSION to 1.7.2