Fix a bug where specifying non-default settingsClasses in DefaultGraphDatabaseDependencies had no effect.
Switches to master/slave role in separate and single thread

Previously switching to master happened in the state machine event thread
which introduced problems if that for some reason took a long time since
no other events could be processed and eventually this instance to become
master would be suspect of suspicions from the other instance. This would
add instabilities during master switches and prolong some switches as
well.

Now the switching happens in a separate, yet single, thread that is shared
by both the slave and master switching and so they cannot happen
concurrently either.
Fixes issue with state bookkeeping for reporting instance role

There are some cases where an instance can switch from MASTER to
 SLAVE without broadcasting the masterIsUnavailable event. In this
 case we cobble the state kept in ClusterMembers and can end up
 reporting the wrong role. This fix introduces knowledge of
 the mutual exclusion of MASTER and SLAVE roles in ClusterMember,
 ensuring that when one is received, the other is properly
 removed.
Initialise LifeSupport.
Merge pull request #2226 from tinwelint/1.9-mode-switch-in-singlethread

Switches to master/slave role in separate and single thread
Merge pull request #2249 from digitalstain/1.9-maint

Fixes issue with state bookkeeping for reporting instance role
Merge pull request #2244 from chrisvest/1.9-fix-default-settings-classes

Fix a bug where specifying non-default settingsClasses in DefaultGraphDatabaseDependencies had no effect.
Merge branch '1.9-maint' into 2.0-merge-1.9

Conflicts:
	community/kernel/src/main/java/org/neo4j/kernel/DefaultGraphDatabaseDependencies.java
	enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/HighAvailabilityModeSwitcher.java