base: Move the format_bytes() and related APIs into base

This allows these to be used by multiple components outside
of the shell. The format_delay() is not yet ported as various
internationalization issues need to be sorted out there.

Closes #1556
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
bridge, base: New 'options' control message

This is a new control message that is sent in a channel, and changes
the state or options of the channel. The cockpit javascript channel
API is also adjusted to make it easier to send control messages.

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
bridge: Add 'batch' and 'latency' advise options in stream

These can be set via a "options" message, which let the caller change
the stream batching and latency on the fly. Necessary for the docker
console and journal logging.

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
 * Changed docs to reflect that "batch" and "latency" can also be used
   with the "open" control message.
docker: Use the 'batch' and 'latency' stream options

These allow the docker logs to have some semblance of performance
when loading large amounts of data.

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
server-systemd: Use the "batch" and "latency" options in journal code

These should allow transferring data in larger blocks unless the
given latency is reached. A bit more efficient when parsing things.

Closes #1552
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
common: Allow parsing command messages without a command

If no command parameter is specified to cockpit_transport_parse_command()
allow skipping the command field.
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
playground: Add a bit of a speed testing page