Add failing tests for Hash location changes

Update the tests for the Hash location API implementation to support
ignoring trailing slash changes.
Require all urls begin with leading slash

Update the History location API implementation so that all urls
returned by getURL and formatURL have a leading slash,  including the
empty route.
Update Hash location API to handle empty route

Update the Hash location API implementation so that it does not cause a
routing event when it is already on the same path.
Also, treat urls with and without trailing slashes as the same path.
Update history location API implementation not to mutate input
variables in setURL.
Update hash and history location tests.