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
The entire gem is [9 KB](http://rubygems.org/gems/dm-active_model) / [60 lines of library code](https://github.com/datamapper/dm-active_model/blob/master/lib/dm-active_model.rb). It seems sufficiently lightweight that nobody should care. If we get a lot of complaints, we can make it optional.