Better error message for invalid tag object
Fix excessive item version updating modifying item tags via sync

When a tag was changed on an item during sync, all items linked to the old tag
were modified instead of just the one from which it was removed.
Write privileges weren't being enforced for processor-based writes

The edit check was looking for a global variable that wasn't set in the
processors. If someone knew what they were doing, they could modify (but not
read) data in a library they didn't have write access to. (To do this to a
specific library, they likely had to be a member, since I don't think the
libraryID is exposed except via classic sync.) The write would have been
recorded under the username of the modifying user.

API-based writes and syncs small enough to be processed inline were being
checked properly.
Handle read-only shards for all queries
Make S3 SSL usage configurable
Merge remote-tracking branch 'upstream/master'