Avoid duplicate loads on creating item adjustments

This reduces a source of duplicate records loads that can lead do deadlocks and identity problems.

We oversaw this one on the deduploads optimization branch.

After merging I'm gonna squash this commit into the deduploads one on the next rebase.
Wouldn't it basically be the inverse of `#where`, eg:

```ruby
def not(*arguments)
  conditions = extract_where_conditions(arguments)

  conditions.reduce(self) do |scope, (name, value)|
    scope.restrict { |record| !record.public_send(name).eql?(value) }  # XXX: note the "!"
  end
end
```

Of course `#where` would need to return self if no arguments were provided. Also I'm sure there's room for refactoring of duplication.

But if you want to wait for another call-side, I'm fine with that.