Application shutdown control (with SIGTERM handling). Different from atexit in that it controls initiation of graceful shutdown, as opposed to cleanup actions that are done as part of the shutdown process.
Note: thread safety of this module is questionable. Use ae.net.shutdown for networked applications. TODO: transition to thread-safe centralized event loop.
Register a handler to be called when a shutdown is requested. Warning: the delegate may be called in an arbitrary thread.
Calls all registered handlers.