Make saving the game more flexible

This pull request mainly adds two features:
- Automatic saving can be disabled individually for map changes and exiting the game. The settings are `save_onload` and `save_onexit` respectively, and are located in `engine/misc.txt`.
- Saving can be triggered via map and NPC events. So saving can now be done through something like touching an obelisk or talking to a special NPC. Just use the event component `save_game` as part of an event.

In addition, I've added a log message that gets displayed when the game is saved. This required me to tweak the log menus a bit to prevent spamming the same message repeatedly. Organizing the shared stash triggers a save whenever an item is moved, so that can be a lot of save messages. I made it so that the log message only gets displayed once if it's the same as the previous message.

*UPDATE: I made it so that campaign, event, and quest messages ignore spam prevention.*