(#190) Fix file expansion crash when $HOME is not set.

Without this patch, when facter is run in an environment where $HOME
is not set, it crashes while trying to expand_path "~". The patch
uses Ruby's ENV['HOME'] instead of "~", which sanitises the
expansion.
(maint) Move misplaced confine statement in dhcp_servers fact

Previously, one confine statement was nested within another, meaning
that every time we invoked the suitable method, we changed the number of
confines.
Merge pull request #700 from whopper/dhcp_confine_fix

(maint) Move misplaced confine statement in dhcp_servers fact
(#190) Don't set external facts when ENV['HOME'] is nil
Merge branch 'pull-691' into facter-2
(FACT-592) Unbreak swapfree/swapsize facts on OpenBSD

On OpenBSD the "swapctl -s" output also reports the blocksize which
must be taken into account. Also the scaler was incorrectly reporting
terabytes of swap instead of gigabytes.
Merge branch 'pull-698' into facter-2
(FACT-664) Fix swap facts for SmartOS container

Inside a SmartOS container swap facts report 0 for size and free even
though a swap volume is allocated. This removes the leading '/' to match
the smartos swap format.
Merge branch 'pull-664' into facter-2
(FACT-476) Make the 'processor' fact for OpenBSD consistent with other operating systems.
Merge branch 'pull-671' into facter-2
(maint) Confine ENV['HOME'] tests to non-root
(packaging) Update FACTERVERSION to 2.1.0
Merge branch 'facter-2' into stable
Merge branch 'stable' into facter-2
Merge branch 'facter-2'
(FACT-599) Don't hardcode location of `sysctl`

`sysctl` is found in `/sbin` on OpenBSD but is in `/usr/bin` on OSX.
Because we can't assume the location it's easier to allow
`Facter::Core::Execution.which` to locate the executable to invoke.
Merge pull request #704 from adrienthebo/bugfix/facter-2/fact-599-sysctl-path

(FACT-599) Don't hardcode location of `sysctl`
(FACT-601) Format plaintext output for non-string values

Without this commit, structured facts outputted as plaintext are
printed using `#to_s`, which is useless on ruby 1.8.7:

    $ facter partitions
    sda1mount/bootsize1024000uuid7de786a9-be75-4711-b782-fb26aec963d4sda2size975747072sda3size2047

This commit changes the outputting to format non-string values using
`#inspect` which produces much more usable values:

    $ facter partitions
    {"sda1"=>{"uuid"=>"7de786a9-be75-4711-b782-fb26aec963d4", "size"=>"1024000", "mount"=>"/boot"}, "sda2"=>{"size"=>"975747072"}, "sda3"=>{"size"=>"2047"}}
Merge pull request #705 from adrienthebo/bugfix/facter-2/fact-601-structured-facts-plaintext-output

(FACT-601) Format plaintext output for non-string values