Improve invalid data fallback
The app does a lot already to ensure that data is consistent and to avoid partially written data being used, ie. in the case of the app being killed mid-write or losing power mid-write. This should ensure that only valid data ends up in our data file. However, in the offchance a partially-written file does end up in our main file, we should fall back to reading the backup file if it fails to parse.