General OMEROWrapper refactorization for passing directory

Reduce the number of locations that OMEROWrapper is created,
passing directory when it is clearly server-side.

Note: this currently does not compile because the OMEROWrapper
lives in blitz while everything else lives in romio.
Split OMEROWrapper to CachingWrapper for directory use

To simplify cleanup, having all caches written into a single
directory was added to the `loci.formats.Memoizer` class. Here,
hard-coded as `/tmp/memo`.

The various import related classes, howerver, are a tangle of
dependencies making it very difficult to not copy the same block of
code, e.g. the ReaderWrapper sequence and setting the proper
directory, throughout the code base.

By splitting OMEROWrapper into a CachingWrapper part in romio with
no dependencies on blitz we can mostly do this.

A few issues:
 * now, client-side caching is disabled
 * requires an insight dependency on romio
 * enforces use of a wrapper through ome.io.bioformats
 * allowed for preliminary, needed import class cleanup:
    - use of `wrap()` is encouraged
    - overriding `ReaderWrapper` method is discouraged
    - discourage holding on to wrapper instances