shell, base: Implement cockpit.location in base package

Move the hash tracking and setting API to a new cockpit.location
API in the base module.

Also, move the old cockpit.location temporarily out of the way.

Signed-off-by: Stef Walter <stefw@redhat.com>
 * Made the API a lot like window.location
 * Handle relative paths and dots in paths
 * Use window.onhashchanged for events
 * Use location.go() for delayed change logic
 * Task switching will happen in another API
shell: Use new API for hash tracking and setting

Closes #1393

Signed-off-by: Stef Walter <stefw@redhat.com>
 * Updated for cockpit.location API
WIP fix