(QENG-280) beaker throws sort error when it can't locate fusion snapshots

- add check for snapshot definition per fusion host
- add check that snapshot exist per-existing fusion vm
(QENG-326) Dump puppet logs on failed shutdown

Right now the puppet logs are only dumped if there was a failure to
start the service. That means that when there is a failure on shutdown
we are left in the dark. This adds dumping of the logs when a error is
raised in the shutdown process.

This also improves the FakeHost so that it can support the [] method
instead of having a catch-all stub. By implementing the method is makes
the fake more resilient to changes and reduces the need for stubs of
what is mostly a value object.
(QENG-319) The "result" Object Doesn't Have Promised Attributes

- to support old tests, yield self on a block with arity of 0
- to support new tests, yield result on a block with arity of 1
(QENG-326) Ignore errors when dumping logs

If the log dump encounters an error, that error would mask any errors
with the teardown of the puppet system. This changes that to log the
error from the log dump and continue on as normal. The logs won't be
dumped (maybe. depends on where the error was encountered), but the
problem will be reported and so will the original teardown problem.
Merge pull request #177 from zaphod42/issue/master/qeng-326-dump-logs-for-shutdown-errors

(QENG-326) Dump puppet logs on failed shutdown
Merge pull request #170 from anodelman/fusion-fixes

(QENG-280) beaker throws sort error when it can't locate fusion snapshots
Merge pull request #179 from anodelman/result-object-fix

(QENG-319) The "result" Object Doesn't Have Promised Attributes
create beaker 1.8.0 gem
Merge pull request #183 from anodelman/make-gem

create beaker 1.8.0 gem
(maint) Wrap windows PE installation in `cmd /C`

When cygwin converts the posix-style commandline that bash provides to
a windows-style one for calling msiexec, it adds quotes around some
arguments. These quotes cause msiexec to fail. By wrapping the msiexec
invocation in `cmd /C`, we use the windows command interpreter to
handle the command line instead of bash/cygwin. This avoids the
translation issues introduced by cygwin.
(maint) Install PE on windows synchronously

Previously, beaker would call msiexec in a way that would cause it to
run asynchronously. This worked pretty much by chance, because beaker
did enough other stuff before trying to run puppet on the Windows
machine.

This wraps the msiexec call in `start /w`, which waits for the
installation to finish before continuing. This ensures that puppet is
fully installed before beaker continues.
Merge pull request #185 from branan/use_cmd_for_msiexec

(maint) Wrap windows PE installation in `cmd /C`
create beaker 1.8.1 gem
Merge pull request #186 from anodelman/make-gem

create beaker 1.8.1 gem
(QENG-310) move various host configuration steps together

- remove utils directory, place contents in host_prebuild_steps.rb
- update specs to reflect where code was moved
- update hypervisor.rb to use default, pre-built steps

- addon: remove last reference to systest
Merge pull request #178 from anodelman/configuration-cleanup

(QENG-310) move various host configuration steps together
(maint) Add spec Tests for Empty Fusion Snapshots

Add three spec tests to exercise that invalid Fusion snapshots raise the
proper errors.
google cloud integration
add firewall to google default network for given project

- to ensure that pe ports are open
added retry for network failure errors