MODE-1874 - Fixed the resolving of relative/index paths when <local-file-index-storage/> is used. In addition, refactored some constants used for storing paths.
MODE-1867 - Fixed the minStringSize variable and refactored some parts of the binary storage subsystem.
MODE-1871 Corrected spelling error in exception message
Corrected compiler warnings
MODE-1880 FileSystemConnector uses incorrect ID when adding content to nt:file nodes

The local name was being used to prevent generation of filenames containing the : character, but this is unnecessary for jcr:content nodes since the content should end up on disk in the file associated with the nt:file ancestor node.
MODE-1840 CONTAINS clause should allow use of bind variables

Per the JCR 2.0 specification, the 'CONTAINS' clause in JCR-SQL2 queries
allows using a bind variable in place of the full text search expression.
This commit adds this support, including two new test cases that
verify the functionality.
MODE-1880 Minor improvement to generation of IDs inside the file system connector

When the file system connector writes nodes to the file system, a warning
is logged for every node (other than 'jcr:content' nodes) contain
a namespace in their name. This is because the file system connector
turns only the local part of the node name into the file/folder name.
MODE-1882 Corrected file system connector's use of binary values

The file system connector was using the (built-in) UriBinaryValue class
for its binary value objects. However, the DocumentTranslator was
not handling this particular BinaryValue subclass, so the UriBinaryValue
instances were merely written as stored BinaryValue instances. Thus,
when reading content via the connector, the DocumentTranslator had only
the SHA1 and size and thus created a StoredBinaryValue. The result
was that the Binary value would resolve its content from the BinaryStore.

A test case was added to replicate the problem.

With this change, the UriBinaryValue extends the abstract ExternalBinaryValue
class, which is handled by the DocumentTranslator and which is already
used by the Git connector with GitBinaryValue. However, a few changes
were required so that ExternalBinaryValue distinguished between the
connector-specific "id" and the SHA-1 binary key. (These are the
same for the Git connector, but the file system connector needs
to use a URL for the "id".)

The test case passes with these changes.
MODE-1884 Added more safety to MS Office sequencer to not cause NPEs

The MSOfficeMetadataSequencer was modified to use private helper methods
to set properties, and those helper methods not check for null values
before setting the properties.

Also changed the JcrValueFactory and BinaryStoreValueFactory to
better handle null parameters.
MODE-1812 DDL Parser and Sequencer for Teiid's dialect
Saving off initial code. Most of parser is done. Some work in the create trigger needs to be done. And work on sequencer is left to do.

MODE-1812 DDL Parser and Sequencer for Teiid's dialect
Work on getting table, view, procedure, and column references working in various statements.

MODE-1812 Changed CND node types to be mixins. Added sequencer tests.
Changed parser scoring to now include both statements and keywords.
MODE-1812 MODE-1812 DDL Parser and Sequencer for Teiid's dialect
Add more sequencer tests. Changed the way some nodes are named. Removed all TeiidDdlParser methods that were not being called.
Added mix:referenceable to the node types that are being referenced. Removed the "canBeNull" property from the CND and replaced
it with the standard DDL property of "nullable." No longer throw exception if a referenced element is not found; now just logging
a debug method.
MODE-1812 DDL Parser and Sequencer for Teiid's dialect
Removing MySqlDdlParser from the pool of available parsers. This should not have been added in.
MODE-1873 Corrected how subquery results are converted to criteria

When a subquery selected a pseudo-column (like 'jcr:path'), the query
result contained Path instances. These values could not be successfully
used in criteria, since they were not converted to the correct value type
expected in the dependent query. Since only pseudo-columns were a problem
(and really only the 'jcr:path' and 'jcr:name' pseud-columns since they
return Path and Name values, respectively), the code that grabs the
subquery results was modified to convert these non-standard types
to strings.

A test case was added to the text sequencer test case, since that was
the best place for replicating the problem query (which used the
'mode:derivedFrom' property created during the sequencing operation).
However, once the problem was identified, I created a simple test
case within the JcrQueryManagerTests.
Corrected compiler warning
MODE-1851 Added test case to show 3-way joins do work

Added a test case that uses the S-RAMP node type design and checks
that 3-way joins can be used to 'resolve' S-RAMP relationships.
MODE-1888 Added warnings to queries

The ModeShape-specific query API not includes warnings on QueryResult objects. ModeShape will include warnings in a number of cases, including when column names are misspelled (via common patterns), or when columns is a better match with a different selector.

Several new test cases were added to verify the behavior.
Moved the AS7 subsystem and distributions modules back in the main build list, so that a simple `mvn clean install` will build the AS7/EAP dist by default. For the rest of the profiles (assembly, integration etc) Maven will resolve the correct order (based on dependencies) when they are activated.
MODE-1872 - Changed the default configuration so that re-indexing is done asynchronously. This exposed the need to be able to shut down the re-indexing process when a repository is shutdown.
MODE-1872 - Fixed lazy workspace creation, so that it's atomic.