feat($urlRouter): abstract $location handling

 - Wrap all handling of $location and UrlMatchers and abstract away from $state
 - Expose URL-syncing interfaces
 - Refactor and simplify URL generation