Separate out io actions from save dialog display.
Execute savedata io on a separate thread.

Some savedata is sorta large, like 1MB, this makes it save more smoothly.
Show a message when saving/loading fails.
Prevent a possible race condition in save/load.
Merge pull request #6468 from unknownbrackets/savedata

Execute savedata operations on a thread, notify of failure