MODE-1538 Added ability to cancel queries

Added a Query.cancel() method that can be used to cancel currently running queries.
Note that because the Query.execute() method blocks, canceling a query must be done
via a separate thread. This does add some complexity to clients, but it provides
a very useful capability to cancel long-running (or perhaps runaway) queries.

All tests pass with these changes.
MODE-1507 - Added the webdav modules back to the build system and fixed the tests.
Also, removed a deprecated class and implemented a real integration test which uses a WebDav client to test the exposed functionality.
MODE-1507 - Updated the AS7 kit to include the WebDav war and also added an Arquillian integration test
MODE-1537 Corrected how manual transactions are implemented

ModeShape's initial support for JTA transactions included a bug that allowed this
only to work for the first transaction. The state of that first transaction was kept,
so ModeShape never registered a Synchronization implementation for subsequent transactions.
Although the data was correctly persisted as part of these transactions, none of the
events for the subsequent transactions were fired and thus the local caches became
out of date and failed to expose the newly added/modified/deleted content.

ModeShape's internal transaction abstraction was corrected and simplified so that
the transactional state is never managed by the system but instead is referenced
by the client code using the transactions. This does make the API slightly more complex,
but it greatly simplifies the implementation and corrects the transactional behavior.

A new integration test was added to use a SLSB with BMT to create a subgraph of nodes
in one (or more) transactions, verify the structure (using a different transaction),
and remove the subgraph in another transaction.

All unit and integration tests pass with these changes.
MODE-1507 Corrected compiler warnings re unused imports
MODE-1525 Adding a node without specifying primary type incorrectly assumed "nt:unstructured"

If a parent has a child node definition with a default primary node type, and a child
(with the correct name to match the child node definition) is added without specifying
the primary type, the child incorrectly was assigned a primary type of "nt:unstructured".
This was because the "AbstractJcrNode.addNode(String)" method incorrectly hard-coded
the node type to "nt:unstructured" rather than determining the child's node type from
the parent's node type(s). Simply removing this assumption fixes the problem.

Two new tests were added to replicate this problem and verify the changes do correct the
problem.

All unit and integration tests pass with these changes.
MODE-1525 Corrected other tests that relied upon incorrect behavior
Updated release notes
Updated release script for latest JIRA release on jboss.org
MODE-1536 Corrected one use of System.nanoTime

Previously, most of the uses of System.nanoTime to determine the duration of an operation were changed to compute the absolute value of the difference in nanoTime results. One usage was missed, and this corrects that omission.
Updated Maven module descriptions
MODE-1527- Migrated initial version of the text extractors from 2.x and updated the binary store to extract the text and mime-type of binary values

Working on this, exposed how fragile - lock-wise - is working with the SharedLockingInputStream (FileSystemBinaryStore). Therefore, I've updated the mime-type detection so that mark & reset are avoided as much as possible, also making sure that streams are closed after each detector finishes with them.
The Tika version was bumped to 1.1 which required also the update of the POI version to 3.8.
MODE-1527 - Updated the text extraction process to be asynchronous with the indexing process.

 This meant that a few changes were needed:
 - the text extractors configuration has been updated to resemble that of the sequencers
 - the binary store interface has been updated to be able to store and retrieve extracted text for a given binary (source) value
 - the TextExtractors class was changed to become the entry point into text extraction
MODE-1527 - Updated the text extraction process to be triggered preemptively by the binary storage, when a binary value is created.

For this to be possible, the context of the extractor cannot contain any node-specific information. Also, this exposed an issue with the SharedLockingInputStream: if the stream is closed in the "read" methods, Tika's parsers will keep reading it over and over (effectively reopening it each time) either causing OOM errors or duplicate text. This means the "close" call from the read methods has been removed.
MODE-1527 -Added AS7 support for configuring and working with text extractors. To validate the configuration and Arquillian integration test was added as well.
MODE-1544 - Extracted Tika based mime-type detector and updated the way mime type detectors are loaded and initialized.

Because of the AS7 support, the detectors need to be loaded via the Environment class loader. Also, because text extraction (and implicitly mime-type detection) can be triggered preemptively, some of Tika's excluded dependencies needed to be added back (e.g. for .java and .class files)
MODE-1544 - Removed the mime-type detector field from the execution context, as the binary storage & binary values should be the "owners" of the mime-type related information.
MODE-1545 - Implemented a mechanism for the binary store to persist the mime-types of binary values, in order to avoid detection each time.

While working on this, another issue was exposed and fixed: when persisting data to disk (e.g. the AS7 kit), the defaultPrimaryType of node type definitions was not properly re-initialized on a restart.
MODE-1433 - Added a JDBC datasource to the AS7 kit and an integration test which verifies that the DS is correctly setup and can correctly access the repository.
MODE-1416 - Updated the rest server to produce not only application/json but also text/plain and text/html, based on the Accept header of the request.
Clients which rely on the old (default application/json behavior) should specify the Accept header in the request.