Add support for cloning additional git repos

This adds a "--yagr" option to the acceptance framework: "Yet Another
Git Repo".  You can pass as many occurrences of this as you like,
and the framework will clone each repo so that you'll have it available
for your project's tests.
Support for VMWare Fusion when using --vmrun

This provides support for reverting a VMWare Fusion machine to a particular
snapshot prior to executing tests.

Additional requirements on the Test Driver:
- Must have the 'fission' gem (including all its dependencies) installed
- Must have a ~/.fissionrc that points to the `vmrun` executable and where VMs
  can be found

You can then use the following arguments to systest:
- `--vmrun fusion` tells us to enable this feature. This is required.
- `--snapshot <name>`, where <name> is the snapshot name to revert to. This
  applies across *all* VMs, so it only makes sense if you want to use the same
  snapshot name for all VMs. This is optional.

For each host, you can (optionally) have a "fission" section with the following
(also optional) settings inside:

- `vmname`: This is useful if the hostname of the VM doesn't match the name of
  the .VMX file on disk. The alias should be something fission can load.
- `snapshot`: This is useful if you'd like to use different snapshots for each
  host. The value should be a valid snapshot name for the VM.

Signed-off-by: Deepak Giridharagopal <deepak@puppetlabs.com>
Use headless mode for Fusion VM's

Signed-off-by: Deepak Giridharagopal <deepak@puppetlabs.com>
Add fission dependency to gemspec

Signed-off-by: Deepak Giridharagopal <deepak@puppetlabs.com>
Move vmname option from fission-level to host-level

vmname is a generic attribute of a host, thus the option can be useful in
contexts outside of fission. This patch moves that option out of the fission
subsection and into the parent host section.

"I've been wanting to make explicit the distinction between name used by the
harness, hostname, and vmname for awhile. This is something we're going to need
in vSphere soon and I'd like to see 'vmname' as a key in the host hash above
the fission specific section (since I'll probably be using it in vSphere as
well before Lance ships)." -- Justin Stoller

Signed-off-by: Deepak Giridharagopal <deepak@puppetlabs.com>
Merge pull request #245 from grimradical/9989_fission_support

Support for VMWare Fusion when using --vmrun
Fix typo in comparison statement

Signed-off-by: Deepak Giridharagopal <deepak@puppetlabs.com>
Merge pull request #246 from cprice-puppet/feature/master/allow-extra-git-clones

Add support for cloning additional git repos
Merge pull request #249 from grimradical/typo-in-vmrun

Fix typo in comparison statement
Add "node_name" method to Host class

In certain tests it is very important for us to use
an agent's node_name_value rather than relying
on the hostname from the test config file (or
other possible values that may successfully
resolve in DNS).  For example, when testing
node activation and de-activation for puppetdb,
we *must* use the node_name_value or things
can go awry.

This commit adds a method to the host object
that allows us to retrieve the node_name_value
without having to hard-code the command for
acquiring it into all of the tests.  We might
want to consider similar methods for a few other
things such as FQDN.
Allow projects to define their own setup suites

This introduces the "--setup-dir" option, which
allows a project to specify a path to a
project-specific setup directory.  This directory
may contain subdirectories like "early", "pre-suite",
and "post-suite".  Ruby files inside of these
directories will be run at the appropriate phase
in the testing lifecycle.
Merge pull request #248 from cprice-puppet/feature/master/node-name-method-for-hosts

Add "node_name" method to Host class
Merge pull request #247 from cprice-puppet/feature/master/allow-project-setup-suites

Feature/master/allow project setup suites