16007: Special handing for users with permissions on other users
Revise & simplify permission traversal. Don't traverse users except
when starting from the user (origin_uuid = starting_uuid).
This avoids disasterous queries where we re-traverse other users "just
in case" and end up recomputing the whole database. As a tradeoff,
our epic readable_by query gets a touch more epic, as it now has to go
to the permissions table to check if there are other user permissions
the current user also is allowed to use.
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>