(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.