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