ws: Proper errors returned from CockpitWebServer static files

Only return 404 for files not found, and don't make a big deal about
this in the logs. Handle 403 appropriately, in addition for denying
listing directories. 500 for everything else.

Don't leak internal file lookup errors, which could be a security
breach.
ws: Make CockpitWebServer serve static files from multiple directories

This is really handy during debugging.
web: Include <script> tags for js files in index.html when in debug mode

When in --enable-debug mode, include <script> tags for each of the
javascript files individually in index.html so we can easily see
the relevant line of an exception or other failure.
ws: Allow overriding where cockpit-agent is when in debug mode

In debug mode we'd like to run out of $builddir. So allow an additional
--agent-path agrument to cockpit-ws (only valid when debug build)
which allows us to override the default path.
web: Clearer symmetrical debugging in channel.js

Debug both in and out messages the same for clarity.
web: Don't display Unhandled exceptions in a dialog

These go to the console, and are not useful for users to see
in a dialog. Show an 'Ooops!' in the status bar instead, and
suggest that the user restarts Cockpit, when they click on the
oops.

This method catches all of the unhandled exceptions, not just
those we were wrapping in a besafe() function.