Rework shutdown

This set of patches is intended to make sure that the agent will reliably stop after a reasonable time if it has been requested to, even in some corner cases.

I removed the counting of shutdown requests: One request needs to be enough in case of for example a shutdown of the host or an automated restart.
That's basically why I brought it up.  You're right that's is not really a huge deal but it is something we should be consistent about so we're not surprised when we try adding two time object together or when logging a time object.