MODE-2004 Access control checks only occur in repositories that have ACLs

Implemented this by adding an "accessControl" boolean field in the
repository's metadata document. The field is "false" by default, but
is changed to "true" as soon as the first ACL is created and added to
a node in the repository (any workspace). This means that for any
repository that does not use ACLs, there is almost no overhead to the
ACL checks. However, as soon as the first ACL is created, then from
that point forward all permission checks look for ACLs on the
specified node or any of its ancestors.

RepositoryCache was also changed to efficiently expose this setting
to other components: the JcrSession class was changed to use it to
determine if the ACLs should even be checked, while
AccessControlManagerImpl was changed to set this value to true when
ACLs are created. (RepositoryCache only updates the metadata document
if the value is different from its existing value, and notification
of the changes is propagated to other nodes in the cluster.)
MODE-2004 Update the logic that reads/writes the repository metadata document

Per code review, the method that does this work needed some improvements
to make it work correctly in a highly-concurrent scenario.
MODE-1969 Extended the standard JCR types with a new type: SIMPLEREFERENCE which acts as a weak reference, but doesn't cause any back-pointers to be stored. Also, properties of this type are not returned by the JCR specific methods handling normal references (strong & weak).
MODE-1969 Updated querying to support simple references. Also added unit tests for the JCR-SQL2 REFERENCE() operand. This exposed a bug in that previously strong references were no stored in the ALL_REFERENCES Lucene field and therefore never retrieved in queries.
MODE-2009 Fixed the workspace.delete() operation so that a) permissions are being checked and b) the workspace is actually cleared and all nodes removed. This also exposed an additional problem regarding the retrieval of all the additional parents of a node.
MODE-2010 Fixed handling of multi-valued properties in WebDAV: since there doesn't seem to be a standard on how they should be returned to the client, they are ignored and a warning is logged.
MODE-2011 Fixed XmlSequencer's handling of default namespaces
Corrected compiler warnings
MODE-2013 Added the simpler API logger to Connector

The Connector base class now has a 'log()' method that returns the
simpler API Logger class with methods that take only String parameters
(rather than I18n messages used in the internal logger). The internal
logger is still available via the existing and unchanged 'getLogger()'
method. JavaDoc explains the differences between the two.

Also includes a separate commit that corrects quite a few compiler warnings.
MODE-2015 Deprecated the "removeDerivedContentWithOriginal" configuration attribute
MODE-2012 Added test cases

The two test methods do not replicate the reported problem, but they still are useful since they test functionality not previously tested.