Inspector overhaul

This replaces #7700 which GitHub will no longer let me re-open. What this does:

The install path is stripped from file locations. Events & Hooks show priorities and more usable descriptions for handlers that aren’t global functions. Views show priorities, extensions, overrides, and any plugin hooks that may filter their output.

Users can jump directly to plugin hook or view inspections from the views, simple cache, and widgets listings.

We also move describeCallable() to the inspector.

Also: This moves the logic of sniffing plugin dirs for views into the ViewsService so it’s less coupled to ElggPlugin. Also we add tracking of views whose locations have been overridden. We save them in the system cache but don’t need to load them for requests; that can be done by the views inspector if it needs them.

Fixes #4540