Sitemap now contains instead of extends BasicForest to protect the
Sitemap API
A substantial number of changes with wide ranging impact, but should
improve the clarity and logic around navigation and the use of the
Sitemap. Changes include:
-SitemapURIConverter replaced by functionality in the Sitemap
-URIFragment handler is now stateless. Navigation state is held by a
passive data instance of NavigationState
-NavigationState is used in place of a URI is most places, to remove the
need to repeatedly decode the URI
-URIViewPermission no longer needs @AssistedInject
-Sitemap no longer controls "public" and "private" through dedicated
roots - this is transferred to individual SitempaNodes to give greater
flexibility.  There is more to do to ensure that the nodes are populated
for this. Sitemap no longer has publicRoot and privateRoot.
All regressions tests pass except DefaultSitemapFileReaderTest, this
needs to be reworked along with DefaultSitemapFileReader to reflect new
approach to public/private
-V7View requires a name
-SitemapLoaders for file, annotation and direct working in principle but
need more work,  See #154, #162, #212, #214
Rationalised the use of modules and loaders for the Sitemap, but still
have tests failures to resolve (5 errors, 22 failures).  Also now
requires the use of com.googe.inject instead of java.inject, the former
has an 'optional' parameter, the latter does not
Added missing unit tests (shell only)
Switched to using all com.google.inject annotations instead of some
javax.inject and some google.  Closes #208
Unit tests for Sitemap modules completed
Standard pages defined in a module
Syntax of file based Sitemap less weird.  Public and private no longer
dependent on separate branches, closes #154
FileSitemapLoader with multiple files, tests revised for use with
load().  Report combines output for all loaded files.  SitemapChecker
added as placeholder.
Revised Sitemap further;  now supports the same categories of user
access as Shiro (as used by the @Requires... annotations; (see #154).
This does put a little weirdness back into the file based Sitemap, but
is still better than earlier version.  PageAccessControl used to
identify the equivalent of Shiro annotations.

Still some fixes and tests to do
Made proper use of PagePermission, so that Shiro permissions (including
wildcard) can be used to provide page authorisation based on its URI.
All current unit tests green, but more needed to verify bindings.
Corrected imports
Put facility for redirects in Direct and File sitemap loaders.  Cannot
see where it would be logical to annotate redirects, so not implemented
for annotation sitemap loader, at least for now (see #218).

SitemapChecker now ignores nodes which are redirected.
Fix to handle null label keys in DefaultUserNavigationtree
Redirect for empty URI.
https://sites.google.com/site/q3cjava/sitemap#emptyURI
Page access control logic delegated to PageAccessController
Redirect logic corrected in UserNavigationTree
SitemapChecker extender to include page access control
Redirect loop check implemented in DefaultSitemapChecker. Closes #130
Included system management pages in demo, as a Guice module.  Demo runs,
but TestBench is failing
Fixed the TestBench cases.  Introduced UITree as a test helper
Type in Javadoc.  The following were closed by earlier work on this
branch, but not identified as closed by commit comments:

Closes #216, #214, #212, #163, #146