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
Merge pull request #1970 from digitalstain/1.9-maint

Adds INSTANCE_ID header in all outgoing messages. HIAAProcessor uses that
allSeesAllAsAvailable now has allSeesAllAsJoined as precondition
Added test for starting up single instance cluster
Merge branch '1.9-maint' into 2.0-maint

Conflicts:
	community/kernel/src/main/java/org/neo4j/kernel/lifecycle/LifeSupport.java
	community/server/src/main/java/org/neo4j/server/configuration/Configurator.java
	community/server/src/main/java/org/neo4j/server/configuration/PropertyFileConfigurator.java
	community/server/src/main/java/org/neo4j/server/configuration/ServerConfigurator.java
	community/server/src/test/java/org/neo4j/server/configuration/PropertyFileConfiguratorTest.java
	community/server/src/test/java/org/neo4j/server/helpers/ServerBuilder.java
	enterprise/cluster/src/main/java/org/neo4j/cluster/MultiPaxosServerFactory.java
	enterprise/cluster/src/main/java/org/neo4j/cluster/StateMachines.java
	enterprise/cluster/src/test/java/org/neo4j/cluster/StateMachinesTest.java
	enterprise/ha/src/test/java/org/neo4j/test/ha/ClusterManager.java
	enterprise/ha/src/test/java/org/neo4j/test/ha/ClusterTest.java
	packaging/neo4j-desktop/src/main/java/org/neo4j/desktop/runtime/DesktopConfigurator.java
Merge pull request #2006 from digitalstain/2.0-maint

Merge branch 1.9-maint into 2.0-maint