ISPN-3712 Pull in the optional compatibility package so that the CLI upgrade test passes
ISPN-3767 MassIndexer breaks search feature with one node cluster

* Add DegeneratedClusterMassIndexingTest to show that mass indexing does not guarantee all work is fully flushed when MassIndexer.start() returns
* Add BatchBackend flushing to ensure all indexing work is flushed for all indexes
Correct spelling of parameter in DistributedExecuteCommand.perform
ISPN-3786 REST server is treating timeToLiveSeconds=0 inconsistently
Fix test names
ISPN-3422 In non-tx caches, write operations may not be atomic during rebalance

* Replace the ignorePreviousValue flag with a ValueMatchingPolicy enum.
* Set the matching policy to MATCH_EXPECTED_OR_NEW when retrying a
  putIfAbsent(k, value).
* Regular put(k, value) still won't be atomic, because we don't keep the
  previous value around.
* replace(k, expected, newValue) and remove(k, expected) will also be
  retried with MATCH_EXPECTED_OR_NEW.
* Same as regular put(k, value), replace(k, newValue) and remove(k) won't
  be atomic.
* Check the primary owner's response and update the status of the command.
  Only successful commands should be retried if the topology changes.
ISPN-3798 Split ProtobufMetadataManager into separate interface and implementation to ease creation of MBean proxies
ISPN-3728 Bring back Infinispan Server, and LevelDB+REST cache stores

* Bring back LevelDB store to main source repository.
* Bring back REST store to main source repository.
* Bring back Infinispan Server to server/integration folder
* Leave maven artifact IDs as they are.
* Excluse some packages from javadoc generation so that the javadoc
generation stops halting with errors.
* Adjust main release script so that it also copies over the server
distribution zip files. Both library and embedded distribution zip
files should be rsynched.
* Adjust release script to avoid  changing version for jboss-parent
pom reference.
* Adjuts release script so that server integration artifacts get
uploaded as well.
* Add REST, LevelDB and CLI cache stores to all distribution ZIP file
ISPN-3750 Configuration.toProperties
ISPN-3774 Create CheckStyle project and base style rules
ISPN-3774 Extend CheckStyle to allow ignoring some rules in testsuite code
ISPN-3774 Extend CheckStyle to allow verifying for an empty copyright
ISPN-3774 Introduce a CheckStyle rule to ban import statements from specific packages
ISPN-3776 Removing unused method from Lucene Directory (both versions)
ISPN-3775 Enable CheckStyle for the LuceneV3 module
ISPN-3775 Apply code style fixes as detected by the new CheckStyle rules on Lucenev3
ISPN-3775 Re-synchronize testsuite for Lucene Directory V4 vs. v3 (CheckStyle and other missing improvements)
Restore the Server RHQ plugin XML descriptor which was munged by gitignore
ISPN-3738 Entry version gets lost during topology change -> NPE

* refactor some most used classes like BlockingLocalTopologyManager
and NotifierLatch
* prepare forwarding during state transfer merges the forward response
ISPN-3773 State transfer thread can stop even though there are pending transfer tasks

Put the empty queue check and the thread stop in a synchronized block.
Simplify the state transfer loop by retrying failed tasks immediately.