fixes neo4j/neo4j#1855

guarantee initialization order of supplied unmanaged extensions by using java.util.List instead of java.util.Set.
fixing compile error in neo4j-desktop
Fixed lifecycle handling during slave switch. No longer causes deadlock with concurrent shutdown of database.
Added predicate to wait for all instances to be joined when using arbiters

Conflicts:
	community/kernel/src/main/java/org/neo4j/kernel/lifecycle/LifeSupport.java
	enterprise/cluster/src/main/java/org/neo4j/cluster/MultiPaxosServerFactory.java
	enterprise/ha/src/test/java/org/neo4j/ha/correctness/ClusterInstance.java
	enterprise/ha/src/test/java/org/neo4j/test/ha/ClusterManager.java
Fixed lifecycle handling during slave switch. No longer causes deadlock with concurrent shutdown of database.
Added predicate to wait for all instances to be joined when using arbiters

Conflicts:
	community/kernel/src/main/java/org/neo4j/kernel/lifecycle/LifeSupport.java
	enterprise/cluster/src/main/java/org/neo4j/cluster/MultiPaxosServerFactory.java
	enterprise/ha/src/test/java/org/neo4j/ha/correctness/ClusterInstance.java
	enterprise/ha/src/test/java/org/neo4j/test/ha/ClusterManager.java
Merge pull request #1859 from sarmbruster/fix-1855

fixes neo4j/neo4j#1855
Fixes an issue with tx log reading in severely damaged log files.
Adds INSTANCE_ID header in all outgoing messages. HIAAProcessor uses that.

HeartbeatIAmAliveProcessor relies on incoming message's URI to determine the
 originating InstanceId. That is error prone and unnatural, since every
 layer but the network should not care about URIs. This commit ensures
 that all outgoing messages have an INSTANCE_ID header with the sending
 instance's ID.
This commit also ensures that HIAAProcessor reverts to looking at
 FROM if the INSTANCE_ID header is not present, since we need to
 make sure that during rolling upgrades from 1.9.6 forward we don't
 loose contact with older version instances
Content-Encoding is about gzip, etc. Not character encoding.

See github issues #1872, #961 and http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html for more info.
Decouple {EE|GDB}Helper from JUnit so that it gets easier to use the new test style

o Introduced new top-level test classes: {EE|GDB}JUnitSuite, EEJUnitSuite
o Converted EqualsTest to use EEFunSuite as an example
Rename new suite classes to Cypher{JUnit|Fun}Suite and move to commons

o Adds a provided dependency from cypher to commons for tests
Rename StatisticsChecker to QueryStatisticsTestSupport

o Clean up of QueryStatisticsTestSupport and synced with QueryStatistics again
o Change QS.deleted{Node|Rel} => QS.{node|rel}Deleted for consistency
Merge pull request #1980 from boggle/2.0-funtest

Better support for using new Cypher test style with {EE|GDB}Helper
Merge pull request #1959 from cleishm/ast-plan-cache

Use Cypher query cache to find plans based on AST
Merge pull request #1967 from jakewins/2.0-txlognulls

Fixes an issue with tx log reading in severely damaged log files.
Refrain from creating an EagerPipe around updating pipes if the source
pipes do not read from the database
Fix the Windows build

Make sure the file URLs for CSV files are correct on Windows.
Second attempt at fixing the Windows build
Fix the exception handling for cleanup tasks in ClosingIterator
Third attempt at fixing the Windows build
Merge pull request #1993 from jakub-/pipe-reads-from-database

Refrain from creating an EagerPipe around updating pipes if the source