base: Be more relaxed about D-Bus subscriptions

Don't try to send messages over closed channels.

Closes #1142
Reviewed-by: Stef Walter <stefw@redhat.com>
shell: Don't extend cockpit.xxx as the shell global

Use shell.xxxx instead, once we start mixing components using
AMD this gets very confusing.

Closes #1445
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
 * Fixed missed references to cockpit.spawn, shell.variant,
   and shell.register_component.
shell: Track navigation in external pages

And add some toy navigation to the playground.

Closes #1406
Reviewed-by: Stef Walter <stefw@redhat.com>
ws: Return a full CockpitTransport from completed authentication

Instead of just a pipe. This allows us to substitute in other
transports than pipe based ones.
ws: Add ignore-key property on CockpitSSHTransport

This is to be used when we are sure we can ignore the host key. Such as
when connecting to 127.0.0.1
ws: Add a "result" signal to CockpitSshTransport

This signal is emitted when the connection finishes, whether success
or failure. In the success case it means that cockpit protocol messages
will start being relayed to the other end. In the failure case it
means that the transport will close shortly.

But this is meant to have a bound over the connection aspect of an
SSH transport, that can be relied on to emit when done.
ws: Refator CockpitAuth to put cockpit-session stuff together

This will make it easier to clearly see what's what once the other
SSH loopback based authentication is in place.
ws: Use an alternate loopback SSH based login when running in container

When running in a privileged container systemd and selinux are both
very very confused if we try to run a user session from a descendant
of a daemon like docker.

So for login and starting the user session, we instead SSH into
127.0.0.1 and use that for authentication too.

Note that because we are connecting to 127.0.0.1 we can ignore host
keys.

Closes #1444
WIP docker container

WIP run in container

FIXUP more work on Dockerfile

FIXUP run in docker container

WIP first try at launching a session

More WIP

WIP with ssh user session