(PUP-2912) Build/unpack spec tests w/o symlinks

Prior to this commit we would try to use symlinks in the tests on platforms that
do not support symlinking.
This commit uses the Puppet feature checker to conditionally try the tests if
Puppet thinks the platform supports symlinks (Unixes, Linuxes, Win 2k8+).
Merge pull request #2927 from highb/fix/master/pup-2912-windows-spec-tests

(PUP-2912) Build/unpack spec tests w/o symlinks
(PUP-2912) Puppet FS symlinks in build/unpack

Prior to this commit build/unpack were trying to use the Ruby stdlib symlink to
deal with symlinks. This fails on platforms (Windows) that Puppet says supports
symlinks because it does not duck punch Ruby stdlib.

This commit switches the specs and code for build/unpack to use Puppet FS lib's
symlink functions. This should allow it to function correctly on Windows hosts that Puppet
supports symlinks.
Merge pull request #2930 from highb/fix/master/pup-2912-windows-spec-tests

(PUP-2912) Puppet FS symlinks in build/unpack
(maint) Fix fact output error in environment acceptance tests

Prior to this commit we were experiencing a failure in the
environment acceptance testing due to a recent change that reduced
fact loading output to debug only.

Now the test is no longer failing since we are now explicitly
loading the global module instead of using the fact loading output.

Paired with Hailee Kenney <hailee@puppetlabs.com>
Merge pull request #2932 from jpartlow/maint/master/fix_fact_output_failure_in_environment_acceptance

(maint) Fix fact output error in environment acceptance tests
Merge remote-tracking branch 'upstream/master' into puppet-4

* upstream/master:
  (maint) Fix fact output error in environment acceptance tests
  (PUP-2912) Puppet FS symlinks in build/unpack
  (PUP-2912) Build/unpack spec tests w/o symlinks