bridge: Add fsread1, fswrite1, fswatch1, and fsdir1 payload types

Closes #1513
Reviewed-by: Stef Walter <stefw@redhat.com>
daemon: Also store name, color, and avatar in dashboard configuration

Reviewed-by: Stef Walter <stefw@redhat.com>
shell: Update shell.hosts to new dashboard configuration storage

This takes color and avatar directly from the dashboard configuration,
and uses the name in the dashboard configuration as a cache for the
pretty name of the target host.

Also allow setting of the pretty name via shell.hosts.

Reviewed-by: Stef Walter <stefw@redhat.com>
shell: New shell.image_editor

Reviewed-by: Stef Walter <stefw@redhat.com>
shell: Server appearance edit dialog for dashboard

Reviewed-by: Stef Walter <stefw@redhat.com>
shell: Styling for multi-server dashboard list

Reviewed-by: Stef Walter <stefw@redhat.com>
daemon: Remove support for local avatars

Closes #1467
Reviewed-by: Stef Walter <stefw@redhat.com>
base: Don't recompile or list jquery.min.js

We have a global rule which does this for .min.js files, but make
this one an exception.

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
base: Automatically register jQuery as an AMD module

If jQuery didn't get a chance to register itself as an AMD module
because it loaded before cockpit.js, we do so on its behalf.

Closes #1526
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
bridge: Fix double free in cockpit_channel_ready()

For base64 channels we were freeing the decoded payload twice.

Closes #1515
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
bridge: Allocate enough space for base64 data

Follow the GLib documentation guidelines for allocating enough
space for base64 encoded/decoded data.

Closes #1516
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
tools: Fix make-rpms on recent Fedora 21

There's a lot of default output on Fedora 21 by default, and this
completely breaks make-rpms. Add --quiet to make-rpms to fix this.

Closes #1527
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
base: Implement base64 encoding of binary data

This is a surprising omission from the ArrayBuffer and typed array
work. Very odd.

Implementation is a polyfill from MDN, and fixed up.

https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding

Our implementation works with binary data in Array, Uint8Array or
Strings.
base: Implement support for binary message channels

These are created using the 'binary: true' cockpit.channel() flag,
which depending on browser support either becomes 'binary: base64'
encoded or 'binary: raw' when traversing the WebSocket and
web service.

It would have been really nice to define a separate WebSocket
subprocotol like 'cockpit1+binary' which we could have used relay
capabilities to the client. However older browsers like phantomjs
make such a mess of the protocol and protocols argument to the
WebSocket constructor.
base: Implement UTF8 encoding and decoding

We would like to use this with Arrays and not just strings like
decodeURIComponent() do. In addition we would like to stream and
possibly ignore encoding errors. In some browsers TextEncoder
and TextDecoder do some of this, but none of the solutions do
exactly what we need.
docker: A new package for docker stuff
base: More general name for console CSS styles
shell: Give AMD interim module loading its own global

If we hang these off of the shell global, then they start to
conflict with things that are already there.
docker: Add component that shows docker logs or console

And use this component in our main docker container details pages.
In addition document it for use outside of Cockpit.

Closes #1364