[fixed] URL hash consistency across browsers

Unlike other browsers, Firefox will pre-decode the value retrieved
from window.location.hash.  This causes the parameters passed down
to React components from the router to potentially be different in
Firefox vs. other browsers.  Additionally, hashes containing the
string '%25' can cause react-router to throw exceptions, since
this value will be decoded to '%' by Firefox, and then passed by
react-router to the `decodeURI` function, which will consider it
invalid unless it is followed by two more hex digits.

In order to fix these problems, reads of window.location.hash have
been replaced with window.location.href.split('#')[1], which
is consistently the un-decoded string in all browsers.