(FACT-597) Require net-tools for RHEL 7+ and Fedora 19+

RHEL 7 deprecated the use of ifconfig, needed by the interface facts.

Also removed duplicate entry for ruby >= 1.8.7
(FACT-613) Add structured processor fact

This commit adds the 'processors' structured fact,
which incorporates all processor-related facts into a
nested hash. Includes keys for the equivalents of
dynamic ProcessorX facts, ProcessorCount,
and PhysicalProcessorCount.

In addition, the fact includes a 'ProcessorSpeed' key
in OSX, which is equivalent to the existing
sp_current_processor_speed fact.
(FACT-613) Sync flat processor facts with structured fact

This commit refactors the Processor, ProcessorCount,
PhysicalProcessorCount and dynamic ProcessorX facts to
resolve by using values from the new 'processors' structured
fact. This ensures that these facts will stay in sync with
the new fact, while also maintaining backwards compatibility.
(FACT-569) refactor windows acceptance nodesets

This commit refactors Facter Windows acceptance testing configurations
for Beaker. Prior to this commit, each of these files contained multiple
Windows nodes and Ruby architectures. This commit splits them into
separate files so that:
- Facter tests can run in parallel
- Easily see which platforms and Ruby arch's in the matrix passed/failed

This commit also reduces our testing to Windows R2 releases only, except
in the case of Windows 2003; we'll continue to test non-R2 for that
version.
(FACT-569) refactor acceptance testing nodesets

This commit refactors and standardizes pre-existing nodesets for Facter
acceptance testing.
- Remove master configurations; Facter acceptance testing doesn't
  require a master setup.
- Ensure all agents have a descriptive name, e.g. `agent-wheezy-x86_64`
- Re-order each node configuration to be platform, template, hypervisor
(FACT-569) append $ruby_arch if running on Windows

If we're running on Windows, append $ruby_arch to $platform
to pick up the correct Beaker nodeset file.
(FACT-569) fix permissions for /bin
Merge pull request #734 from rji/maint/stable/fact-569-acceptance

(FACT-569) Run Facter acceptance against Ruby 2.0 x64 on Windows
Merge branch 'stable'

* stable:
  (FACT-569) fix permissions for /bin
  (FACT-569) append $ruby_arch if running on Windows
  (FACT-569) refactor acceptance testing nodesets
  (FACT-569) refactor windows acceptance nodesets
Merge pull request #730 from treydock/FACT-597/master/el7_package_dependencies

(FACT-597) Require net-tools for RHEL 7+ and Fedora 19+
(FACT-627) Print `false` when outputting a single fact value

Before this commit the plaintext formatter did a naive `if value` which
is false when `value` is either nil or false. While we don't want to
print nil facts, facts that are false are valid but the previous
behavior would treat them as undefined as well. This commit ensures that
the fact value is not nil, and if the fact is defined then it is
printed.

Thanks to RI Pienaar and Robin Bowes for finding and reporting this
issue.
Merge pull request #735 from adrienthebo/fix/master/fact-627-print-false-fact

(FACT-627) Print `false` when outputting a single fact value
Merge pull request #724 from whopper/master_structured_processor_fact

(FACT-613) Add structured processor fact
(FACT-613) Force legacy processor count facts to be strings.
(maint) Don't run OSX processor specs on Windows
Merge branch 'maint/master/osx-processor-specs-on-windows'
(maint) Don't assume processor facts are defined

If Facter cannot resolve the processors fact (eg Facter.value is stubbed
or the processors fact isn't implemented on a platform) we cannot always
assume that we have a hash. This commit changes the enumerated processor
facts to retrieve the processors fact and ensure that it's defined before
invoking methods on it.
(maint) Lazily evaluate and memoize processor implementation

Without this commit the processors fact will try to determine the OS
specific implementation when the fact is loaded, which triggers a lot of
side effects at load time. This commit converts the fact to lazily load
and memoize the object so that loading is deferred as much as possible.
Merge branch 'maint/master/processor-load-side-effects'