common: Allow parsing command messages without a command

If no command parameter is specified to cockpit_transport_parse_command()
allow skipping the command field.

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
ws: Support for sideband channel WebSockets

These are for channels that need a lot of throughput like SPICE
and VNC, where we want to avoid splicing and prefixing everything
with a channel id.

These are separate WebSockets that are individual channels. They
are opened with a query string containing the JSON encoded "open"
command message. Once open, all data sent through the WebSocket
is part of the payload of that channel.

Closes #1540
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
playground: Add a bit of a speed testing page

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
 * Install and clean it.
build: Clean pkg/docker/console.min.html
build: Add "undef" to jshint.conf and clean up accordingly