(#11328) Add virtualisation detection for OpenBSD

Extend the FreeBSD KVM detection as it's the same trick with "sysctl
hw.model" and use "sysctl hw.product" to detect VMware, Parallels,
VirtualBox and Xen HVM.
(#11328) Fix uptime detection on OpenBSD

Of the four or so uptime detection methods, the sysctl one is the
closest however OpenBSD lacks the -b option. Using -n instead the first
number in the output will be the epoch seconds, on OpenBSD this is all
you get, but with Darwin (and probably the other *BSD's) you get the
epoch seconds, microseconds and the pretty-printed output.

New test cases added and the old ones with the endian-specific packed
output are removed.
Updating CHANGELOG for 1.6.4 release
(maint) remove redundant arch detection

The operatingsystem fact had logic to test for the existence of
/etc/arch-release twice. Removed the dead branch of code.
(#7753) Added error checking when adding resolves

Added exception handling to the fact class. When adding a resolution to
a fact, if an exception was thrown outside of the setcode block, facter
would crash. Added handling so that if an exception is thrown, facter
logs the error and discards the fact.
Merge pull request #116 from adrienthebo/ticket/1.6.x/7753-catch_exceptions_when_adding_facts

(#7753) Added error checking when adding resolves
Move Linux specific virtual tests to correct block.

 - Tests for Linux had strayed into Solaris block. Sited with other Xen tests.
Merge branch 'maint/1.6.x/move_linux_virtual_specs' into 1.6.x
Merge pull request #114 from adrienthebo/maint/1.6.x/remove_redundant_arch_detection

(maint) remove redundant arch detection
(#9789) Extend coverage of operatingsystem specs

Added more coverage of the operatingsystem fact, since it was a bit
sparse and rather critical.
Merge branch 'ticket/1.6.x/9789-add_operatingsystem_specs' into 1.6.x

* ticket/1.6.x/9789-add_operatingsystem_specs:
  (#9789) Extend coverage of operatingsystem specs
(#8279) Join ec2 fact output with commas

ec2 facts were being concatenated, which made array data harder to use.
Switched to comma delimited data.

Thanks to Hunter Haugen <hunter@puppetlabs.com> for this patch.
Merge branch 'ticket/1.6.x/8279-ec2_join_facts_with_comma' into 1.6.x

* ticket/1.6.x/8279-ec2_join_facts_with_comma:
  (#8279) Join ec2 fact output with commas
(#11196) Scan all arp entries for an ec2 mac

This patch now scans all arp entries for the magic EC2 mac address. At times
the mac entry was being returned out of order and since we only looked at the
first entry there were cases where the test would fail.

It also now removes the dependency on the arp fact which has become only
important to the EC2 fact anyway. This was to avoid hacking the arp fact
(which was obviously built for a different purpose) just to fix this issue.
Merge branch 'ticket/11196' into 1.6.x

* ticket/11196:
  (#11196) Scan all arp entries for an ec2 mac
(maint) Joined conditional statements for domain

A pair of conditions for a single if statement were on two lines, which
was visually unclear when scanning the file. Joined the conditions
together to make it more readable.
Merge branch 'maint/1.6.x/cleanup-domain_fact' into 1.6.x

* maint/1.6.x/cleanup-domain_fact:
  (maint) Joined conditional statements for domain
(#11436) Unify memorysize and memorytotal facts

Two different names were given for the amount of physical memory in a
given node. Switched to the name of 'memorysize' for the RAM and added a
fallback fact 'memorytotal' that reverts to the memorysize.
Merge branch 'ticket/11328-openbsd_facts' into 1.6.x

* ticket/11328-openbsd_facts:
  (#11328) Fix uptime detection on OpenBSD
  (#11328) Add virtualisation detection for OpenBSD
(maint) Fix requirement for FileUtils as operatingsystem_spec needs it now

Fix #9789 introduced the use of FileUtils however there was no require line.
Since later versions of rspec (2.6+) it has been requiring it, but this breaks
on older rspec revisions. This patch adds it to rspec_helper so we can avoid
hitting this again on tests, even individual ones.