JSON Serialization Performance

Don't flush when the Jackson UTF8 buffer is full but when the http stream flushes
Fix flaky tests, that rely on HasMap order (Java7 vs. Java8)
Sets a threshold in ArrayCollection where array is recreated if surpassed

this to avoid big arrays with all its references still set. This is an
artofact of the very purpose of ArrayCollection, that clear() should be
as performant as possible.
Fixed an error where a slave cannot become alive to a master in a cluster.

The error was caused by a race in alive msg and fail msg handling procedure.
Merge pull request #3646 from jexp/json-serialization-performance

JSON Serialization Performance
Merge branch '2.0-maint' into 2.1-maint
Integer and Float are not coercible to Boolean
Statistics divergence - query planned before data

If there is no data in the graph matching the basic components of a
query the statistics will be exceptionally poor for the planning. It is
important to ensure that such queries be re-planned as soon as possible.
The previous logic would produce numbers (Infinity and NaN) that made
divergence computation impossible, and even in the cases where it would
be possible to compute divergence, a statistics vector with all zeros
(which would be the case if the graph contains no data) would never be
considered diverged, regardless of how much the data changed.
This change set ensures that no impossible statistics are ever produced,
and introduces a special case for all-zero statistics vectors, falling
back equality comparison between the vectors in this case.
Merge remote-tracking branch 'upstream/2.1-maint'

Conflicts:
	community/server/src/test/java/org/neo4j/server/rest/transactional/ExecutionResultSerializerTest.java
Javadoc fixes for GraphDatabaseService.
Merge pull request #3665 from jotomo/javadoc-javadoc-javadoc

Javadoc fixes for GraphDatabaseService.
Merge pull request #3664 from davidegrohmann/merge-2.1-master

Merge 2.1 in master
Merge pull request #3663 from thobe/2.2-statistics-divergence

Statistics divergence for query planned before any data has been created
Merge pull request #3647 from S124568/2.2-fix-instance-not-alive-after-receiving-heartbeat

Fixed an error where a slave cannot become alive to a master in a cluster
Batch importer should throw an exception when schema creation constraints are violated.
Merge pull request #3662 from davidegrohmann/2.0-number-not-coercible-to-boolean

Integer and Float are not coercible to Boolean
Refactor: Push schema index/constraint conflict messages into the exceptions to align with SPI.

Proper messages for these exceptions can only be created within the context of the operation
and below the SPI level so that such users (Cypher) enjoy increased friendliness.
Fixes shutdown issue with TaskExecutor

where a shutdown caused by task failure might not be able to complete.
Merge '2.0-maint' into 2.1-maint

Conflicts:
	community/cypher/cypher-compiler-2.0/src/test/scala/org/neo4j/cypher/internal/compiler/v2_0/symbols/TypeSpecTest.scala
	community/cypher/cypher-compiler-2.1/src/test/scala/org/neo4j/cypher/internal/compiler/v2_1/ast/AndTest.scala
	community/cypher/cypher-compiler-2.1/src/test/scala/org/neo4j/cypher/internal/compiler/v2_1/ast/OrTest.scala
	community/cypher/cypher-compiler-2.1/src/test/scala/org/neo4j/cypher/internal/compiler/v2_1/ast/XorTest.scala
Merge '2.1-maint'
Fix broken test