OMERO.web show extensions

Now that #2319 has been merged this is my first attempt at using the new unit and integration test functionality to refactor and blanket test a piece of OMERO.web functionality. The end goal is to allow a separate set of PRs by @emilroz and @cneves to extend this functionality.

There is at least one and potentially several bugs and edge cases fixed by these changes. All "path" and "show" semantics remain unchanged.

This should likely be reviewed by @will-moore.

/cc @cblackburn, @pwalczysko