(#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