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.