MODE-1785 - Fixed a couple of FSConnector issues:
- a root node should not add itself as a parent (if it does, it exposes a StackOverflowError)
- trailing slashes (/) in node ids should be removed when determining the file/parentFile
- binary values (corresponding to jcr:content) shouldn't be queryable. If we want them to be queryable, we need to change the implementation to use ExternalBinaryValues.
MODE-1785 - Implemented the logic behind index rebuilding at the repository level based on the "rebuildIndexesAtStartup" flag which contains 3 values: always, if_missing and never.
MODE-1785 - Updated the AS7 schema to correctly parse the rebuildOnStartup attribute.
MODE-1785 - Changed the JSON schema structure for the rebuild indexes on startup feature.
MODE-1785 - Updated the AS7 schema with attributes that are similar to the ones which are part of the JSON schema and which control the indexing rebuild behavior
Updated the test data used by the binary stores to be directly related to the default "minimum binary size" which controls what type of binaries are created.
MODE-1795 Importing XML should map default XML namespace

When importing XML, any XML namespaces should be used, even if the
prefix for the XML namespace matches an existing namespace prefix.
Per Section 11.1 of the JSR-283 specification, an existing JCR namespace
should be used if its URL matches the XML namespace URI. If
there is no existing JCR namespace matching the XML namespace URI,
then the namespace should be registered using the XML namespace prefix
if not already used or a generated prefix if the XML namespace prefix
is already used.

A new unit test case was added to verify the behavior.
MODE-1786 - Fixed the "url" property for JDBC-based binary stores.
MODE-1798 - Added explicit validation of the case when a preconfigured projection is created without an alias name or with an alias that ends in "/". Also, cleanup up a bit the code around preconfigured projections.
MODE-1800 - Added the node primary type as information to the newDocumentId() method, giving connector implementations an additional piece of information.
Corrected compiler errors and warnings.

This have accumulated over the last dozen or so commits.
MODE-1802 - Fixed the handling of root projections for the FileSystemConnector
MODE-1802 - Updated as per code review, moved and added a test case to FileSystemConnectorTest.
MODE-1799 - Fixed the moving of nodes located under root.
MODE-1806 - Changed the way the projections are stored/removed so that the information is persisted each time into the repository. This way there shouldn't be any problems if the shutdown of the repository isn't orderly.
MODE-1807 - Fixed the validation of residual child definitions
MODE-1791 - Added the "readonly" attribute to the connector hierarchy and implemented support for it in the base connector class. Also. updated the JSON schema to support it.
MODE-1791- Updated the read-only option for connectors by adding a WritableConnector base class which now contains the flag and by moving the read-only checks to the FederatedDocumentStore.
MODE-1810 - Added test cases which show that the problem cannot be reproduced
MODE-1805 Query system can be disabled in AS7 kit

Added ability to completely disable the query system (including the
generation/maintenance of indexes) in a repository in the AS7
subsystem. (The JSON repository configurations had this ability for
some time, but it could not be controlled in AS7.)

This adds a new "enable-queries" XML attribute on the "repository"
element in the subsystem configuration. This attributes defaults
to "true" and therefore is backward compatible. However, setting it
to "false" will completely disable the indexing system, although
any index storage and indexing configuration within a repository
configuration will remain as-is; it will simply not be used.
This means that the repository's indexes and query system can be
disabled (perhaps on a temporary basis) and then re-enabled without
having to completely reconfigure the index storage and indexing
parameters.

It was discovered that executing queries on a repository that had
its query system disabled resulted in a NPE, because the running
state did not have a RepositoryQueryManager instance. Rather than
deal with all of the potential NPEs, a new specialization of
the RepositoryQueryManager, called RepositoryDisabledQueryManager,
was added and is instantiated within the running state when queries
are disabled. This specialization essentially no-ops all of the
operations. The result is that queries will return no results
rather than throw an exception.

Additional warning messages are logged when the indexes are indeed
disabled, since this will rarely be done in production.

Several new tests were added, including unit tests (in
'modeshape-jcr') and integration tests for the AS7 subsystem.