_changes shouldn't fail if user has no channels

If _changes is called with no explicit channel list, and the user has
access to no channels, it shouldn't return an error. (Instead it's just
a no-op.)
Optimization: Only invalidate access list of users whose access changed

When a document's channel access changes from the previous revision,
we used to invalidate the channel access of all users in the old and the
new access lists. Now only invalidate the users whose access actually
changed between the two revisions.