fix #11779: graph operations use "compiler" rather than "rollback" strategy

Fixes ticket 11779, also 10854, 11348, 11939, 12011, 12452, 12544, and several integration tests, and assists ticket 9610. Reimplements server-side processing of delete, chgrp, chown. The main changes are: delete responds `ERR` to deleting undeletable objects (accounts for most test adjustments), and deleting all a well's samples does not delete the well itself (it may have a valuable annotation).

Testing: moving and deleting data should work at least as well as before and generally faster, without leaving alarming stack traces in logs. The ambitious may want to try calling the `Chgrp2`, `Chown2`, `Delete2` requests directly from scripts (different API to the previous). After moving or deleting, one may wish to check that all the expected associated parts were included, e.g., ROIs, also that extra things weren't wrongly included. This PR aims to avoid regressions: further functionality improvements can follow in subsequent PRs.

See http://www.openmicroscopy.org/site/support/omero5.1-staging/developers/Server/ObjectGraphs.html for developer documentation introduced by https://github.com/openmicroscopy/ome-documentation/pull/1042/.

--no-rebase
would `graph_options` be good?