Handle exits gracefully
Handle exiting the bot more gracefully:
- Catch SIGINT, SIGTERM, and SIGKILL (if possible) - see #76 (closed)
Have top-level try-catch, or targeted try-catch around inputs, processors, and outputs- Flush any pending data saves - add proper disposes to all adapters, processors, managers, etc:
- World data persist:
IWorldManager
- see #76 (closed) - Any state saves for input adapters: particularly, FileInputAdapter, for file position - see #77
- World data persist: