MODE-1784 - Added a <webapp/> element to the ModeShape AS7 subsystem which allows any web application packaged under the "deployments" folder of the ModeShape main module, to be deployed by the subsystem. This replaces the previous "static" way of copying web applications directly from the kit in the servers "deployments" directory.
MODE-1858 Building query results should work when nodes are concurrently removed

When the query results are being processed/produced, any node that is not
found is simply ignored (treated as non-existant from the perspective
of the query). However, in certain cases, the timing of a removal could
occur within the method that obtains the document from the cache, causing
an exception. This was rectified to return null in such cases. Thus,
the existing code in the BasicTupleCollector that handles null nodes
will continue to work in all cases.

I was not able to come up with a test case able to replicate this scenario,
however. That's because the failure occurs within a single WorkspaceCache
method, after the SchematicEntry is obtained but before the SchematicEntry's
content document can be obtained. A test case cannot reliably ensure
this condition occurs (without adding junk code within the WorkspaceCache).
MODE-1860 - Moved the location of the ModeShape modules back to the "modules" folder. To make this easier to change in the future, a root property was added which controls the location.
MODE-1852 Correct deserialization of events over JGroups channel

JGroups needs to know about the classloader that loads the ModeShape
event classes. The easiest way to do this is to extend ObjectInputStream
to supply and use a classloader for deserialization. This is especially
important in AS7/EAP and OSGi, where a single classloader is not used
for all the components.
Merge branch 'master' of git://github.com/ModeShape/modeshape into mode-1852