WL-7 Refactor out the building of a page map.

This is to allow the hierarchy pages to be built and for us to have more control over how the URLs are built.
WL-7 We don’t put as much junk into the context now.

As we just build the pages for the hierarchy site we don’t put the extra stuff in the context and so hierarchyPages can actually contain the hierarchy pages.
WL-7 Allow the SiteNeighbourhoodService to be overridden.
WL-7 Better building of the URLs to not include extra /

As out hierarchy has nodes that are empty or contain / we need to be more careful about encoding double slashes into the URLs.