Event log queue

Intended as `PersistentEventLogLoader Mk II`, `ome.services.eventlogs.EventLogQuery` works around a number of issues spelled out in [11948](https://trac.openmicroscopy.org.uk/ome/ticket/11948) and elsewhere. Rather than loading a single event log at a time, number logs (by default 1 million) are loaded *without duplicates* and further attempts to add a log which is already cached will not lead to an extra indexing of the object.

Currently, this has only be implemented for the `FullTextIndexer` but the same logic could be applied to the `PixelDataHandler`, and in fact, the two might could coexist in the same JVM. This PR will need a number of different types of review and should probably stay open for some time to guarantee that any quirks have been worked out. It builds on top of the add-metrics branch PR (gh-2581) and so should be able to provide reasonably accurate feedback of what it's doing (JMX/SLF4J/Graphite).

If necessary, a server installation can rollback to the previous `persistentEventLogLoader` via `bin/omero config`.

Other improvements here:
 * Shutdown time of `Indexer-0` is **significantly** improved.
 * A number of new CLI `reindex` options are now available, e.g. `--reset` and `--sequential`.
 * Indexer logging should be much user friendlier, both from the CLI and in the background.

Things needing work:
 * Docs, as always
 * Configuration properties and their defaults (especially for logging)
It is checked each iteration! Hence idioms like `for (int i=0, n=thing.size(); i<n; i++)`. But I am not hung up over it either way, it was just a passing observation. (-: