(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