shell: Register dialogs separately from pages

So that the upcoming refactoring can be done without having to bother
with dialogs.  Dialogs will get their own makeover.

Reviewed-by: Stef Walter <stefw@redhat.com>
shell: Make cockpit.loc private

And refer to it as "page navigation parameters".

Reviewed-by: Stef Walter <stefw@redhat.com>
shell: Explicitly pass default host to embedded components

We will keep doing this when the current 'machine' option goes away.

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

Reviewed-by: Stef Walter <stefw@redhat.com>
shell: Separate page parameters into host, path, and options

Also remove the old { page: "..." } construct from the API and strip
the prefix from the path when passing it to embedded components.

Reviewed-by: Stef Walter <stefw@redhat.com>
shell: Test hash encoding/decoding

Reviewed-by: Stef Walter <stefw@redhat.com>
shell: Move shell-specific semantics out of cockpit.hash

Reviewed-by: Stef Walter <stefw@redhat.com>
Rename the old dbus code out of the way

So we can implement new stuff with the usual 'cockpit.dbus' and
CockpitDBusJson names.
doc: Document and design new dbus-json3 protocol payload

There will be additions later, but this is the meat of the
protocol.
bridge: Implement a new dbus-json3 protocol payload

This protocol is much simpler than the others. There will be some
additions to it in the future, but at it's core it's about relaying
messages and signals.

We don't have innate object manager support in the bridge, the
javascript code will respond to events and update an object model
there.
base: Implement a javascript client for new dbus-json3

This implements a simple javascript client for dbus-json3. It has
no proxy support at this time, but that will be added later.
doc: Add documentation for cockpit.dbus and related

Closes #1356