Try to get VirtualBox info without dmidecode

/sys/devices/virtual/dmi/id/product_name:VirtualBox
(#11082) Add fact operatingsystemrelease for Solaris

Algorithm plus sample input and desired output was
provided by John Warburton
(#11082) Add negative tests for operatingsystemrelease

The current behaviour of the operatingsystemrelease fact is that we have
a general operatingsystemrelease fact that will suit every platform and
returns the kernelrelease fact.

So if our solaris operatingsystemrelease fact does not work
(/etc/release not present, empty, unexpected content) facter will try
to resolve the general operatingsystemrelease fact. That is now
reflected in the tests.
Merge pull request #122 from kbarber/ticket/1.6.x/9708-os_confines

Ticket/1.6.x/9708 os confines
(#11583) Switch request method to open-uri monkey patch 'open'

This makes the code consistent with the rest of the EC2 fact code by just using
open for http requests instead of the full open_uri method. This is to make my
testing consistent and is also slightly cosmetic.

I also fixed the indentation on those two lines as well.
(#9599) Add nexenta facts

Adds support for Nexenta to the operatingsystem and osfamily facts.
Since Nexenta is binary compatible with solaris, it has also been added
into the Solaris osfamily fact.

Tests and osfamily support added by Adrien Thebo <adrien@puppetlabs.com>
Merge branch 'ticket/1.6.x/9599-nexenta_operatingsystem' into 1.6.x

* ticket/1.6.x/9599-nexenta_operatingsystem:
  (#9599) Add nexenta facts
(#9599) Generalize zone detection

All systems using the SunOS kernel can run zones, not just the solaris
operating system. Generalized this for cases like Nexenta and Open
Indiana.
Merge pull request #131 from adrienthebo/ticket/1.6.x/9599-nexenta_operatingsystem

(#9599) Generalize zone detection
(#11583) Add basic coverage to the ec2 fact

The only goal here is to add coverage based on the current behaviour so we have
something to work with when other contributors work on the code.

We've only added very simple bad-case testing (ie. timeout) to match the code
at the moment, however the good-case testing covers flat & structured meta-data
and user-data. While we test both ec2 and eucalyptus cases, we only check basic
user-data for eucalyptus for now (as the code is the same in both cases).
Merge pull request #128 from kbarber/ticket/1.6.x/11583-ec2_tests

Ticket/1.6.x/11583 ec2 tests
(#11660) Adds feature SSHFP
(#11659) Adds ssh spec

RFC4255 SSH fingerprints are now facts in the form SSHFP_RSA, SSHFP_DSA.
No other algorithms are currently supported
(www.iana.org/assignments/dns-sshfp-rr-parameters).

Adds test cases for the ssh fact module.
(#11660) Adds feature SSHFP

Corrects previous which didn't include the right file.

RFC4255 SSH fingerprints are now facts in the form SSHFP_RSA, SSHFP_DSA.
No other algorithms are currently supported
(www.iana.org/assignments/dns-sshfp-rr-parameters).
(#11661) EC2 rspec tests were using throw not raise to simulate a timeout

This patch corrects that behaviour. Also, 'throws' wasn't working on our CI
machines since we were using mocha 0.9.x.
Merge remote-tracking branch 'kbarber/ticket/1.6.x/11661-ec2_rspec_raises_not_throws' into 1.6.x
(#10271) Identifying 'Amazon' using '/etc/system-release'
Merge pull request #133 from grooverdan/ticket/11660-sshfp_and_ssh_rspec

(#11660) Adds feature SSHFP
Revert "(#11660) Adds feature SSHFP"

This reverts commit 50f6da63a2040f15333540b3c61e0bce11f48e06.
This reverts commit 6c8683a50c394f017459e24f73e67e66bcbc6d5a.

These ware submitted oddly, and I didn't notice that I merged the non-working
tests as well as the correct looking code, since they had two tickets
associated.  Backing both out now.
(#11559) Switch to RbConfig & Provide alias for RbConfig for pre-1.8.5

In Ruby 1.9.3 we started to see warning messages about the deprecated usage of
the class 'Config' as apposed to 'RbConfig'. This patch switches all our code
to 'RbConfig' instead.

Now the constant RbConfig was aliased to Config going back to Ruby 1.8.5, but
for pre-1.8.5 ruby this was not done. To support our Ruby 1.8.1 user base
(due to RHEL 4 predominantly) this provides a monkey patch util library which
provides the same alias (conditionally) but for older rubies instead.

This methodology is seen as less intrusive and less maintainance going forward
then to create conditionals everywhere, or a facter-only backwards compatible
alternative to RbConfig. And since its the similar methodology adopted by Ruby
core (more or less) it should be a monkey patch with low surprises.

I've also added testing around the facter/util/config.rb library.

Thanks to James Turnbull <james@lovedthanlost.net> for the original code for
this patch.
Merge pull request #142 from kbarber/ticket/1.6.x/11559-rbconfig_deprecation

Ticket/1.6.x/11559 rbconfig deprecation