Fixes race that can cause duplicate writes in XaLogicalLog

There is a possible window where a transaction may fail to flush
 the log buffer (for example, during a commit) and even though
 it will set the KernelHealth to notOk, another thread can still
 come and try to flush the same contents again (say, by attempting
 a commit of its own tx). This can cause the log to be unrecoverable.
 This commit fixes this issue by introducing checks to KernelHealth
 before any write happens to the log's underlying file.
Merge pull request #2326 from digitalstain/1.9-fix-damaged-log-writes

Fixes race that can cause duplicate writes in XaLogicalLog
added script to detect unauthorized contributors
support for using Iterable<Node> as start points for traversals

Enabling nested traversals (or run traversals based on a Cypher result) without the need to first consume the first traversal. TraversalDescription accepts to use Iterable<Nodes> for start nodes.
 Internally we already had support for Iterable<Node> instead of Node.... but we didn't expose it.
Logging performance optimizations:
* Added custom Jetty logger that caches isDebugEnabled
* Changed LogbackService to cache isDebugEnabled
* Added isDebugEnabled check before toString() in HighPerformanceCache
Only add security filter if there are security rules
License header fix
Debug cache is now no longer static.
Added comment that the request log needs to decorate all other handlers.
Merge branch '1.9-maint' into 1.9-merge

Conflicts:
	community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/xaframework/XaLogicalLog.java
	community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/xaframework/XaLogicalLogTest.java
2.0.3 changelogs
Merge pull request #2329 from davidegrohmann/scala-maven-plugin-bump

Use latest version of scala-maven-plugin
Documentation fixes.
Merge pull request #2334 from nawroth/master

Documentation fixes
Merge remote-tracking branch 'upstream/2.0-maint'

Conflicts:
	community/cypher/cypher-compiler-2.0/src/main/scala/org/neo4j/cypher/internal/compiler/v2_0/pipes/ExecuteUpdateCommandsPipe.scala
	community/cypher/cypher-compiler-2.0/src/main/scala/org/neo4j/cypher/internal/compiler/v2_0/pipes/TopPipe.scala
	community/cypher/cypher-compiler-2.0/src/test/scala/org/neo4j/cypher/internal/compiler/v2_0/pipes/TopPipeTest.scala
	community/cypher/cypher/CHANGES.txt
	community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v2_0/ErrorMessagesTest.scala
Make query graphs handle WITH
Add inlineProjections, an AST rewriter that inlines projections where possible

o Also make sure that the AST only contains AliasedReturnItems when planning
o Remove WITH * when building Query Graph
o Removed commands.ReturnItem.renamed
o Removed inlineNamedPaths (replaced by inlineProjections)
o Fix OptionalExpandPipe to emit nulls when given a null identifier
o Introduce AstConstructionTestSupport
o Introduce IsAggregate, containsAggregate
Make AvailabilityGuard available through DependencyResolver
Normalize predicates before plan building

To plan predicate selection well, predicates
are now rewritten to conjunctive normal form
before planning starts.

Another difference is that And and Or expressions
are replaced with Ands and Ors so these can be
worked with as collections instead of trees.
Merge pull request #2336 from boggle/ronja-with

Inlining of expressions and handling WITH in the query graph
Merge pull request #2328 from systay/boolean-normalization

Normalize predicates before plan building