Fixed #22918 -- migrations.operations.SeparateDatabaseAndState crashes (...and has no tests)

An update of the pull request https://github.com/django/django/pull/3146

Fixes this issue: https://code.djangoproject.com/ticket/22918

Fixes both the lack of tests, and the broken `SeparateDatabaseAndState` implementation.
I'd imagine that this would also require #a7ac5f018726694e3a79180ef97f2813c715fac0 and #a8521a2c228bd9e981dc8a2bea4e26f4544a52a7 to be reverted.