Update dependency to dj ~> 4.0

* Refactor query conditionals into clearer "scopes"
* Adjust scopes slightly to better match logic in DJv4
* Changes in scopes seem to fix edge cases broken by me previously
* Trigger a record reload after we perform lock_exclusively
I could also just add the alias for `persisted?`. I leave this up to you whether to include this gem for that purpose or not. It may not be a dependency others wish to deal with, as they may have hacked in active_model support for their own projects by hand.