(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-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
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`
Merge pull request #186 from anodelman/make-gem

create beaker 1.8.1 gem
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
split out google compute related code to its own class

- tidy!
added yard documentation to google compute code + new platform class

- we like docs!
- i should do this more often!
- please don't check for grammar