Mode 1872 - Changed the re-indexing process to be asynchronous by default

The configuration changes needed to make re-indexing async were easy enough. However, they exposed 2 problems:

(1) re-indexing needs to be shutdown when a repository is shut down: it may happen (and it does in our tests) that a repository/engine is shutdown while re-indexing is still in progress. This meant that additional code was needed to make sure re-indexing is shut down as well.

(2) after the above changes, random tests from <code>modeshape-jcr</code> start failing with basically this exception (in various forms):
```
javax.jcr.PathNotFoundException: The child "jcr:system" could not be found under "/" in workspace "default"
	at org.modeshape.jcr.AbstractJcrNode.getNode(AbstractJcrNode.java:798)
	at org.modeshape.jcr.AbstractJcrNode.getNode(AbstractJcrNode.java:107)
	at org.modeshape.jcr.RepositoryNodeTypeManagerTest.shouldOnlyHaveOneNodeTypesNode(RepositoryNodeTypeManagerTest.java:91)
```

(1) was fixed by updating _RepositoryQueryManager_ and adding an additional method for shutting down/stopping re-indexing if it's still in progress when the repository is shut down
(2) was fixed by making sure workspace initialization (which is lazily done) is atomic and thread-safe.