lib: Include both minified and non-minified jQuery and bootstrap

The latter are useful in debugging

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
agent: Add "accept": "minified" resource channel option

If set, this will choose a minified version of the file if available.
Minified files sit next to the normal files and have an suffix of '.min'
just before their real file extension. For example:

  jquery.js
  jquery.min.js

This is in a similar vein to the content selection that the HTTP
Accept and Accept-Language headers provide.

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
tools: Rework how the js-lint and minify tools work

Combine these tools into an 'rcompile' tool which 'compiles'
resources. This includes validation, combining and minification.

Some of the steps are optional:

   -m   Minify the output (if possible)
   -o   Produce output file
   -p   Create output directories automatically
   -t   Specify file type

Install different minified and non-minified file names, for use
during debugging and non-debugging, and making use of the content
selection of minified files in the previous commit.

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
shell: This module becomes more normal

Rename cockpit.js to shell.js, since cockpit.js will be API in a
base package.

Also there's no need to list everything in the manifest. Loading
of resources happens via well known paths. The shell has such well
known paths. Loading of javascript in other packages will happen via
<script> tags. Do something similar here in the shell.

Note that the use of a lot of split javascript files that get
combined is pretty shell specific. Eventually we'll usually have
original javascript files to be loaded.

Closes #1319
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
base: Move jquery bootstrap and term.js into new base package

And make the shell use this package.

The module is called 'base' but we go by the alias 'latest' which
contains the latest unstable Cockpit API. There will be counterpart
modules in the future.
base: Move spawn.js and channel.js into base package

So they can be used from multiple packages. We also document them
in the guide and clean up the API a bit.

One minor change is that channels now automatically detect which
host they should connect to based on the page parameters.

Another is that the 'expect disconnect' logic is handled at the
lowest level, so it is available to all components.

cockpit.logout() also becomes a low level function which
integrates well with the other transport logic.
base: Move common styling and images into base package

This renames the shell specific CSS into shell.css and splits out
the common CSS into cockpit.css
server: Put the terminal into new server task and component

The server component will include various standard components
that don't have heavy outer dependencies.

Closes #1314
doc: Add documentation for the terminal component

And further clarification about how embedding is used