(maint) Use git mirrors for puppet/hiera/facter installation

The git server and fork used to construct git urls for installation
projects via beaker was previously hard set to be github.com and
puppetlabs.  While we continue to default to these values, this commit
allows them to be set globally or per installed project via environment
variables so that we can take advantage of internal and local git
mirrors and daemons.
(PUP-1937) Calling 'ruby' on Windows Fails for PE

The 'ruby' executable does not exist on a PE installation. Instead, the
real name is 'ruby.exe' and it is located within the PE installation
directory. This commit includes a new method (ruby_cmd) in WindowsUtil
for finding the correct executable name and fixes three tests that call
'ruby' directly on Windows.
(PUP-2039) Fix rpm package provider usage of --whatprovides.

The fix for PUP-897 (commit ecb761e24a) introduced always passing
--whatprovides to rpm when querying for packages. This breaks querying
for packages that have architectures specified, e.g.
'vim-enhanced.x86_64'.

The proper way to do this is to first query without --whatprovides and
see if rpm finds a package by the given name.  If rpm fails to find a
package, fallback to using --whatprovides to support querying for
virtual package names.
Merge pull request #2428 from jpartlow/maint/stable/acceptance-gitmirror

(maint) Use git mirrors for puppet/hiera/facter installation
Merge pull request #2476 from peterhuene/pup/2039

(PUP-2039) Fix rpm package provider usage of --whatprovides.
(PUP-1937) Revert changes to with_version

Changes were made to with_version for Windows to use beaker's puppet
command instead of Command.new directly. This change is now reverted.
Merge pull request #2481 from colinPL/revert_withver_stable

(PUP-1937) Revert changes to with_version
(maint) Ensure Beaker failure bubbles up through Rake

When running Beaker from our acceptance Rake tasks, exceptions from the
shell for a failed test run were being lost.  The Rake sh() helper does
not raise an exception for non-zero exit codes if you pass it a block to
inspect the process results.

This commit passes no block to the sh() helper so that failed beaker
runs will raise an exception, causing Rake to exit non-zero.  The code
to preserve_configuration for re-runs is simplified as well so that we
always generate a preserved_config.yaml unless we are currently running
with one.
Merge pull request #2482 from jpartlow/maint/stable/acceptance-rake-exits-non-zero

(maint) Ensure Beaker failure bubbles up through Rake