Maint: Only try to install json gem for ruby 1.8

The json gem contains native code, so a compiler must be present in
order to install the gem (bundle install). On Windows, we intentionally
do not install the devkit, mainly for security reasons.

However, the json gem is only required when running ruby 1.8, so we
confine the Gemfile accordingly. This resolves the issue on Windows,
because we only support ruby 1.9 on that platform.
(#22349) Qualify WinBuiltinAdministratorsSid constant

Previously, we were getting a NameError when trying to resolve the
WinBuiltinAdministratorsSid constant, though it seems to be load order
dependent.
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (#22349) Qualify WinBuiltinAdministratorsSid constant
  Maint: Only try to install json gem for ruby 1.8
(packaging) Update FACTERVERSION to 1.7.3
Merge branch 'release/1.7.3' into stable

* release/1.7.3:
  (packaging) Update FACTERVERSION to 1.7.3
Merge branch 'stable'

* stable:
  (packaging) Update FACTERVERSION to 1.7.3
(#21604) Detect xen virtual fact on windows
(maint) Refactor windows virtual fact for readability
Merge branch 'pull-495'

This fixes GH-495
Maint: Don't try to install json gem on Windows

Previously, `bundle install` would fail on windows without the ruby devkit
installed. As this is not something we ship with, confine the gem to only be
installed on ruby platforms, i.e. not windows.

Also running `bundle install --without development test` followed by `bundle
exec facter` on all platforms would fail due to `facter` being in the
development/test group.
(#20301) Handle different error in ruby 1.9

The NumberOfLogicalProcessor property of the Win32_Processor WMI class
does not exist in the base win2003 install. Previously, we were trying
to access the property, and then catching the resulting error if the
property did not exist.

In ruby 1.8, it would raise a RuntimeError, but in ruby 1.9, it raises a
StandardError, causing the fact to blow up on ruby 1.9.

This commit checks to see if the process object responds to that method,
and only then does it try to call it.
Merge remote-tracking branch 'upstream/1.6.x' into stable

* upstream/1.6.x:
  (#20301) Handle different error in ruby 1.9
  Maint: Don't try to install json gem on Windows
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (#20301) Handle different error in ruby 1.9
  Maint: Don't try to install json gem on Windows
(maint) Remove :focus => true from specs
(#22233) Conform to code standards

Without this patch the documentation for
Facter::Util::GCE.with_metadata_server does not match the
implementation.  The implementation appears to have been copied from
Facter::Util::EC2.with_metadata_server which does take a block as an
argument.  The GCE implementation does not take a block but the
documentation mentions it does.

This is a problem because we have two methods of the same name that have
different designs, which is confusing.

This patch addresses the problem by modifying the GCE implementation of
with_metadata_server to accept a block.  The reason the block was
originally removed was likely because all of the metadata necessary to
define the facts may be gathered with a single call.  Unlike EC2,
there's no need to first check if the service is responsive then call
back out to the service to get the response.  In GCE if the service is
responsive then the initial response is all that's required.

This patch augments the original design by requiring the block passed to
with_metadata_server to accept a single string argument.  The method
will pass the body of the initial response to the block, which will
usually be JSON, allowing the block to define the fact values based on
the initial response rather than requiring a subsequent request.
(#22233) Clean up the rake collect:gce_metadata task

Without this patch the GCE metadata collection task which produces
fixture data duplicates some method names in the :collect rake
namespace.  This patch addresses the problem by separating out the
method names to avoid collision and separating out the EC2 and GCE tasks
into their own files.
(#22233) Remove unused GCE fixtures

These fixtures aren't actually being used by the tests and as such
should not be included in the codebase.
(#22233) Merge branch '22233_improve'

* 22233_improve:
  (#22233) Remove unused GCE fixtures
  (#22233) Clean up the rake collect:gce_metadata task
  (#22233) Conform to code standards
  (maint) Remove :focus => true from specs
(#16081) Facter reports bogus arch on AIX

Without this patch applied facter reports the hardware model of the system rather than the processor architecture.

For example,

root@l488pp139_pub[/software/pe-aix/init] > /opt/puppet/bin/facter
architecture => IBM,9179-MHB

With the patch, the architecture for this system is:

l488pp056_pub > facter architecture
PowerPC_POWER7

while the hardwaremodel remains:

l488pp056_pub > facter hardwaremodel
IBM,9179-MHB
Merge branch 'pull-532' into stable

This closes GH-532.