Save Backups.

Once a save has been written, reloads it and checks the number of properties. If its the number expected, writes a second version of the file to a _backup file for the slot. If the property count is incorrect, spits out a message asking for the user to submit the saves to us so we can inspect them and offers a "restore" option from the backup.
Merge remote-tracking branch 'upstream/master'