Only show root if there is nothing else to show

popState can get called on page load without an original state event. In
this case we only want to show the root if there is no slug to show.
this.state -> this.displayState

So there is less confusion as to what state is
Allow popState to load new data

If you are using the back button to the page which was rendered on the
server we don't get the ajax cache passed in the state object. This lets
us reload that data from the server if the data isn't in the state.

This also moves the title logic from getting the title from the clicked
link to finding the link on the page which targets the current page.
This means that we can reload the title on back button.
Data loading methods should return preloaded data

If there is data in a state object return it rather than trying to load
it from the cache or over the network.

This change lets us simplify the popstate method as we can then always
just try and load the data.

Move the logic for restore subsection into its own method to make the
popstate method clearer.

Also fix a tiny bug where the parseParthname would incorrectly parse
`/browse`.
Merge pull request #13 from alphagov/browse-updates

Only show root if there is nothing else to show