(#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
(#20994) fix incorrectly set memorysize on AIX using svmon (was set to 0)
tested on AIX 5.3, 6.1, and 7.1
(#20994) fix incorrect memoryfree fact on AIX (was set to 0)
tested on AIX 5.3, 6.1, and 7.1
(#20994) add rspec tests for memoryfree and memorysize on AIX using svmon
(maint) remove operatingsystemrelease duplication

Prior to this commit, the `operatingsystemrelease` fact had a
significant amount of duplicate code in determining the release version
of the operating system.
This commit condenses that code to a more managable format.
(maint) remove duplicate code from resolution test

Prior to this commit, the tests for Facter::Util::Resolution were the
same for windows and non-windows systems. This commit combines those two
tests.
Merge pull request #448 from aranc23/fix-aix-memory-facts

(#20994) Fix memorysize and memoryfree facts on AIX
(maint) Extract heredoc fixtures from memory spec
(#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
Merge branch 'stable'

* stable:
  (#20915) Read dmi entries as binary data
  (Maint) Remove duplication in domain tests
  (#20938) Ignore stderr from domain commands
  (Maint) Remove whitespace errors
  (maint) De-duplicate parses RSpec alias
  (#20229) Fix netmask fact with Linux net-tools 1.60
  (#20229) Fix per-interface netmask_* facts with net-tools 1.60

Conflicts:
	lib/facter/util/ip.rb
	spec/unit/interfaces_spec.rb

Recovered linux ip netmask tests from stable into new Facter::Util::IP
specs, and discovered that IP::Linux IP::Bsd classes are not the final
level of separation for ip tool chain. It appears that some linux
distributions have a BSD style output for ifconfig (ArchLinux) and so
they are not parsed correctly.
(maint) fix formatting and add more testing info

Prior to this commit, there were some formatting issues taking away from
readability of `lib/facter/operatingsystemrelease.rb`, and there was
limiting testing of this file. This commit fixes those formatting
issues, and adds more test coverage.
Merge pull request #454 from adrienthebo/maint-extract_memory_spec_fixtures

(maint) Extract heredoc fixtures from memory spec