Update how splits are loaded from the leaderboard
- The Run Editor now shows a loading spinner while it's loading splits from the leaderboard.
- I added a new property to the Run Editor menu state,
persistChanges. This determines whether changes made in the Run Editor should immediately be saved to the database or not. We were previously using the splits key to determine this, but we now need that in order to switch between runs while the Run Editor is open.
Fix #362
@CryZe What do we want the behavior to be in this situation?

Currently, I'm giving the imported splits an undefined splits key, which means they don't automatically get persisted to the database.
If you edit splits that aren't open and download splits, it currently replaces the splits in your timer, despite you never "touching your timer". I don't think that's what we want. Honestly, I feel like we long term probably don't even want to have the leaderboard in the run editor. But that's outside the scope of this PR.
@CryZe Should we always persist the splits from the leaderboard to the database if you click "OK"? That seems like the least confusing user experience based on what you said.
Yeah I think that may be fine? I'm honestly not sure.
Also, I agree that the leaderboard shouldn't be in the Run Editor.
@CryZe Can we merge this? I don't think there are remaining issues with this, at least as a fix for #362.
I can re-review this tomorrow maybe.
@CryZe Could you take a look at the way I'm handling the run editor in this PR? Not sure if I'm disposing it properly everywhere