(QA-644) Beaker vagrant backend corrupts /etc/hosts when --no-provision is passed

- add support to beaker for determining ip addresses of currently up
  vagrant hosts through reading the Vagrantfile
- if the Vagrantfile doesn't exist or ip addresses can't be determined
  then quit
(QA-705) Create manifest files to apply

When applying puppet manifests with `puppet apply` beaker will generate
the manifest code and send it to `stdin`. This is troublesome for
debugging as the actual code is never shown and hard to replicate.

This commit causes the manifest code to be stored in a `.pp` file in
`/tmp` and apply that file so that it may be viewed and reused when
debugging. This is similar to how rspec-system does it.
adding spec tests for pulling ip addresses from existing Vagrantfile

- spec tests are good!
unpin rbvmomi from 1.6.0

- rbvmomi issue fixed for ruby 1.8.7, should be good to go now
(QE-602) Beaker Throws Fatal Error when Displaying Current Version

- just don't do a gemspec load when looking for the version number, thus
  it doesn't end up calling git-ls, thus no fatal errors
pin rubygems to 2.2.1 for travis CI

- issue with 1.8.7 bustage fixed in rubygems 2.2.1
http://blog.rubygems.org/2014/01/06/2.2.1-released.html
Merge pull request #107 from hunner/manifest_files

(QA-705) Create manifest files to apply
Update regex to support internal github mirror
Merge pull request #110 from kurtwall/master

Update regex to support internal github mirror
Add HTTPS support to the link_exists? method in Beaker::DSL::InstallUtils.
Merge pull request #111 from alexharv074/add_https_install_support

Add HTTPS support to the link_exists? method
(PE-2586) Support using frictionless install for upgrades

We now only use frictionless install for versions that support it. This
way we can test frictionless upgrade (which is identical to install)
from non-frictionless installs of older versions, while also testing it
from frictionless installs for versions that support it.
Merge pull request #105 from anodelman/vagrant-ip

(QA-644) Beaker vagrant backend corrupts /etc/hosts when --no-provision is passed
(QA-747) Log the amount of time each command takes to execute

Previously, there was no way to tell how long each beaker command took
to execute on a remote VM. I would like to know this information to
track down a timing issue in acceptance testing on Windows.

This commit modifies the host object to log timing information when
beaker is run in debug mode. It uses the same logging prefix as is used
when displaying the executed command, e.g.

    a4e5hyo2m0ooom1 (master) $  cp /etc/puppet/puppet.conf ...
    a4e5hyo2m0ooom1 (master) executed in 0.01 seconds
(QA-753) Don't write or read the PE tarball more than we have to

The PE tarball is big and our storage isn't always happy about
that. By streaming the tarball unpack, we can avoid a write and then a
read of the 800MB tar. On a matrix of 200 nodes, that comes up to 20
million 4K blocks written then read, for no real gain.
Merge pull request #115 from branan/pe_tgz_unpack

(QA-753) Don't write or read the PE tarball more than we have to
Merge pull request #103 from anodelman/pin-rbvmomi

unpin rbvmomi from 1.6.0
Merge pull request #104 from anodelman/pin-rubygems

unpin rubygems for travis CI
Correct specs for QA-753
Add forgeapi stub to support forge api v3

Version 3 of the forge api will have a canonical source at
forgeapi.puppetlabs.com.

This patch adds this source as a source for the forge stub so
that beaker can set the environemnt to respond correctly for both
version 1 and version 3 of the api.