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.
shell: Make cockpit.loc private.

And refer to it as "page navigation parameters".
shell: Explicitly pass default host to embedded components.

We will keep doing this when the current 'machine' option goes away.
shell: New-style URLs.
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.
shell: Test hash encoding/decoding.
shell: Move shell-specific semantics out of cockpit.hash.