Fix beatmap importing entering a bad state #2665
Previously a single failed import would cause all further imports to fail.
This doesn't fix the remaining known cause of imports failing, which will be addressed in a separate PR. Adds back transaction support, with accompanying EF updates to support transactions correctly.
Note that I had to restructure transactions a bit as EF doesn't allow nested transactions. Now there is a write context which becomes transaction "leader" which is performing the commit.
Partly addresses #2236