(PUP-2816) Default forge override in Rakefile

The override for the fake forge to use only showed up in the
ci-bootstrap-from-artifacts.sh, but that only affects how the jenkins
jobs handle the pipeline. When you run the tests on your own machine,
you aren't going to use that script, which would mean that it would use
the wrong fake forge. This moves the override to the Rakefile so that it
will always take effect.
Merge pull request #2790 from zaphod42/issue/stable/pup-2816-using-wrong-fake-forge

(PUP-2816) Default forge override in Rakefile
(PUP-2828) Pin to 1.9.3 branch of vendored ruby on Windows

Previously, acceptance tests on Windows would install the default branch
of our vendored ruby repo. This is a bit fragile.

This commit makes it explicit that we are using the `1.9.3` branch,
which contains the older set of windows gems.

Newer development to support x64 will be done in the `1.9.3-x86` branch.
Merge branch 'ticket/stable/PUP-2828-pin-vendored-ruby' into stable

* ticket/stable/PUP-2828-pin-vendored-ruby:
  (PUP-2828) Pin to 1.9.3 branch of vendored ruby on Windows

Closes GH-2800
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (PUP-2828) Pin to 1.9.3 branch of vendored ruby on Windows
  (PUP-2816) Default forge override in Rakefile
(PUP-2828) puppet-win32-ruby acceptance ver config

 - Previously, Jenkins acceptance jobs on Windows would clone Windows
   source for puppet-win32-ruby, the vendored Ruby that we ship as part
   of Windows MSI builds.  This comes from an internal git mirror.
 - At present, a simple checkout is performed against whatever is the
   'default' branch (typically the 1.9.3 branch).  Unfortunately, this
   will not work for any acceptance jobs that intend to use 2.0, and it
   currently doesn't work for jobs that need new versions of gems.
 - Rather than take a 'clone the repo and hope it works' approach, make
   use of Beaker's :rev option when calling install_from_git.
   https://github.com/puppetlabs/beaker/blob/beaker1.11.2/lib/beaker/dsl/install_utils.rb#L106
 - Using :rev allows us to pin the repo version by using an environment
   variable that can be setup in the Jenkins job.  Track the relevant
   SHAs with the modified code so that dependent versions are tracked
   in the source tree, rather than through transient Jenkins jobs.
 - To allow the jobs to build a particular architecture, introduce a
   new environment variable called WIN32_RUBY_ARCH that can be used to
   select either 'x86' or 'x64'.  If an arch is not specified, fall
   back to 'x86', but if the appropriate :rev is not specified, kill
   the setup step.
(maint) Use an absolute path so we're not sensitive to pwd

Previously, the location of the windows versions.yaml file depended on
your current working directory, and assumed it was the root of the
project. But acceptance tests are typically executed by cd'ing into
acceptance, and then executing rake tasks from there.

This commit ensures we reference the versions.yaml relative to the
currently executing 000_EnvSetup.rb setup step.
Merge branch 'pr/2801'

* pr/2801:
  (maint) Use an absolute path so we're not sensitive to pwd
  (PUP-2828) puppet-win32-ruby acceptance ver config

Closes GH-2801
Merge branch 'master' of https://github.com/puppetlabs/puppet