Improve shutdown handling, keep shutdown clients around afterwards
Use the new ShutdownClient class to bundle information about registered
shutdown clients and their units, modes and timeouts.
Do not remove shutdown clients from the registered clients list after
shutting them down. Instead, wait for a separate unregister request.
Shut clients down mode by mode when receiving SIGINT. Start with clients
registered for fast, then continue with clients registered for normal.
Improve logging output a little bit.