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
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.
RelationshipGroupRecords are sorted in their linked chain

this to always create a predictable outcome when new groups are added
and to be able to earlier abort scanning the chain if a particular group
is not found.
Remove merge leftovers
Refrain from creating an EagerPipe around updating pipes if the source
pipes do not read from the database
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
Merge remote-tracking branch 'origin/2.0-maint'
Update ClosingIteratorTest after Andres' cleanup task refactor
Merge pull request #1998 from davidegrohmann/master

Merge of 2.0-maint to prep landing autocommit
Merge pull request #1964 from jakub-/exception-handling-fix

Fix the exception handling for cleanup tasks in ClosingIterator
Make non-existent property reads return null rather than throw exceptions
Disable LOAD CSV in 2.0