Merge pull request #588 from systay/1.7-maint

Fixes problem with optional properties and collection predicates
Revert "Added a new kind of cache, a ClockCache that tries to mimic an LRU but with less synchronization."

This reverts commit fc1e67a59e99279c31476c6b6c07ddd47e4934bb.

Conflicts:

	lucene-index/src/main/java/org/neo4j/index/impl/lucene/LuceneDataSource.java
Add a new cache, ClockCache

Added a new cache implementation that behaves approximately like LRU but does not lock on get()
Reduce synchronization in getIndexSearcher

Uses the ClockCache to build a IndexSearcher cache that does not require synchonization on get(). Uses
that to remove need for global lock when getting a searcher which is not closed and not stale.
Removes the boolean stale flag from the pair stored in LuceneDataSource#indexReaders, folds it into
IndexSearcherRef instead.
Removed the incRef argument from getIndexSearcher, added CommitContext#close() instead.
Increased the thread count in GetOrCreateTest, makes it fail more reliably

Conflicts:

	embedded-examples/src/test/java/org/neo4j/examples/GetOrCreateTest.java
	lucene-index/src/main/java/org/neo4j/index/impl/lucene/LuceneDataSource.java
Forces the test to fail if any worker encounter an exception

Conflicts:

	embedded-examples/src/test/java/org/neo4j/examples/GetOrCreateTest.java
Test now cleans up properly after recent changes in IndexSearcherRef
Tests uses their own indexes, to avoid windows problems

Conflicts:

	lucene-index/src/test/java/org/neo4j/index/impl/lucene/TestLuceneIndex.java
Fixed a problem with reference counting, making some readers stay open sometimes
Added date to the cypher specific changelog
[maven-release-plugin] prepare release 1.7.2
[maven-release-plugin] prepare for next development iteration
Revert "[maven-release-plugin] prepare for next development iteration"

This reverts commit 63f9fc200b95c94d871aa9ce290025e141237731.
Revert "[maven-release-plugin] prepare release 1.7.2"

This reverts commit 24fae79877b53cc7ae370288c181da32791cd33f.
[maven-release-plugin] prepare release 1.7.2
Revert "[maven-release-plugin] prepare release 1.7.2"

This reverts commit da847a50711eac5847d2b508fd3bf476bd8c9c6b.
[maven-release-plugin] prepare release 1.7.2
[maven-release-plugin] prepare for next development iteration
Reverts version bump back to 1.7.2-SNAPSHOT since the release will go through again
Solves a problem where some IndexReader instances would be detached but never closed
due to race conditions. Also some reduction of synchronized blocks.

Changed the following:
 - Removed the "optimized" check before synchronizing on the searcher since
   it was causing problems and still called synchronized methods on that instance anyway.
 - Moved IndexWriter instances into IndexSearcherRef so that IndexWriterClockCache
   could be removed and synchronization regarding that. Also the configuration option
   'lucene_writer_cache_size' which is fine because it doesn't make sense to have a searcher
   w/o its writer and vice versa since we use the NRT feature of lucene.
 - Reduced the block where the global read lock is held (in LuceneIndex#query)

Conflicts:

	kernel/src/main/java/org/neo4j/graphdb/factory/GraphDatabaseConfigurationMigrator.java
	lucene-index/src/test/java/org/neo4j/index/impl/lucene/PerformanceAndSanityIT.java
[maven-release-plugin] prepare release 1.7.2