C: Location API

Updated #1393 and added simpler ```cockpit.location``` API.

     * Made the API a lot like window.location
     * Handle relative paths and dots in paths
     * Use window.onhashchanged for events
     * Use location.assign() for delayed change logic
     * Task switching will happen in another API