shell, base: Move cockpit.hash into base.
base: API for hash tracking and setting.

Also, move the old cockpit.location temporarily out of the way.
shell: Use new API for hash tracking and setting.
test: Properly wait until iframe is loaded before switching to it.
shell: Load external pages from target host.