refactor(location): $location now uses urlUtils, not RegEx

The location service, and other portions of the application,
were relying on a complicated regular expression to get parts of a URL.
But there is already a private urlUtils provider which relies on
HTMLAnchorElement to provide this information, which is suitable for most cases.
In order to make urlUtils more accessible in the absense of DI,
its methods were converted to standalone methods available globally.

The urlUtils.resolve method was renamed urlResolve, and was refactored to only
take 1 argument, url, and not the 2nd "parse" boolean. The method now always
returns a parsed url, and all places in code which previously did not want parsed
can now get the value from the href property of the returned object.

fix($location): support IPv6 addresses

Tests were added to ensure IPv6 addresses were handled correctly.