Add 2-Fileset delete tests - both failing

This is the equivalent of what we have in chgrp.py. If a delete is blocked by
2 filesets, both should be returned in the rsp.constraints['Fileset')
Thumbs table text white on selection
Add function to retrieve plane information from an image
Merge pull request #1197 from will-moore/fileset_display_tweaks_10866

Thumbs table text white on selection
Merge pull request #1196 from will-moore/test_delete_2_MIFs

Add 2-Fileset delete tests - both failing
Merge pull request #1204 from sbesson/rebased/develop/matlab_planeinfo

OMERO.matlab: Add function to retrieve plane information from an image (rebased onto develop)
Merge pull request #1191 from jburel/import-callback

Import callback
Pass logfile OriginalFile ID back in some event notifications.
Fix query in Metadata service implementation.
Update JavaDoc.
Clean up imports.
Add logic for creating image-companion links
Pass clientuuid on RawFileStoreI.__redirect

Without the client's uuid, it's not possible for
setFileId to be called.
Provide clientUuid in ManagedImportRequestI
Refactor log/annotation methods for concurrency

The mix of internal (ome.model) and external (omero.model)
calls in ManagedImportRequestI was leading to strange
concurrency issues. By moving all of the calls into
essentially other transactions, this should be resolved.
Use IUpdate for size update rather than RFS

Despite the work on the clientUuid, use of RFS with
repo files is still not viable in this use case because
a default of "r" is used by Repository.fileById. Rather
than introduce an "omero.rfs.write" context variable at
this point, we're just using IUpdate.
Unload annotations before saving pixels.

This fixes the issue where after creating the image annotation
it would get removed by the call to store.updatePixels().