16650 impossible to unpublicize query by other user even when permission is assigned

[``* `#16650` Impossible to unpublicize query by other user even when permission is assigned``](https://www.openproject.org/work_packages/16560)
I guess it makes more sense to use a specific before filter/method for the update case. Otherwise you have a to deal with handling the special case (update) throughout the methods. The code as it is now is very hard to understand.

That would mean destroy and create take the default authorize_on_query (or will create also have to deal with the depublicize/publicize case?) and update takes it's own.

A lot of what you do here is already done by [ActiveRecord::Dirty](http://apidock.com/rails/ActiveModel/Dirty/changed). I guess you could remove the query_changed method completely and also avoid reloading the query.