Install agents using the frictionless agent install

This change adds logic for installing using the new curlbash style of
agent install. In order to support testing both the old and new styles
of install, we add a new agent role of "frictionless", which indicates
that the node should be installed in the new style. This simply causes
it not to download the PE tarball or generate answer files, and to curl
and run a script from the master (based on the platform tag).
Validate that we don't allow frictionless master, etc

Frictionless install is only supported for agent-only installs, so we
check that any frictionless node doesn't have any non-agent roles
specified.
(QE-613) Add `:catch_changes` to check for manifest resource changes

Many times when testing modules we apply puppet code twice in a row and
verify that the second run does not produce any resource changes to
verify that the resources are idempotent. The `:catch_changes` option
can be used to monitor for this result.
Merge pull request #94 from hunner/catch_changes

(QE-613) Add `:catch_changes` to check for manifest resource changes
Merge pull request #93 from nicklewis/frictionless-agent-install

Install agents using the frictionless agent install
Merge pull request #86 from anodelman/log-level

expanded log level support
creating beaker 1.3.0 gem

- adding support for --log-level
- bug fixes
Merge pull request #96 from anodelman/make-gem

creating beaker 1.3.0 gem
(QA-659) Pin beaker to rbvmomi 1.6.0

- pin to rbvmomi 1.6.0 until we can figure out what's broken with
  latest rbvmomi
Merge pull request #98 from anodelman/pin-rbvmomi

(QA-659) Pin beaker to rbvmomi 1.6.0
create 1.3.1 beaker gem

- pin rbvmomi to 1.6 to avoid bustage
Merge pull request #99 from anodelman/make-gem

create 1.3.1 beaker gem
Beaker uses netmask from config for vagrant boxes if present
Rubygems broke spec for rvm 1.8.7

- Temporary workound until https://github.com/rubygems/rubygems/pull/763 is merged
Merge pull request #102 from anodelman/pin-rubygems

Rubygems broke spec for rvm 1.8.7
Merge pull request #100 from aperiodic/vagrant-netmask

Beaker uses netmask from config for vagrant boxes if present
(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