Ensures that incompatible roles are removed from cluster info on availability events

Given that when an instance fails it does not broadcast unavailability events, it may
 happen that an instance failing and rejoining can keep the backup role. Also, an
 instance failing should have its roles removed, as they are no longer relevant. This
 commit does so by checking in ClusterMember for incompatible roles and removing them.
 Additionally, it removes all roles from an instance when a failure event is received
 for it.
Adds tests for these conditions on the ClusterMembers level.
Merge pull request #2850 from thobe/1.9-stringent-role-reporting

Ensures that incompatible roles are removed from cluster info on availability events
Restore the ability to have "mandatory" as a config default value.
Update default configuration files
Inline deadlockGuardedWait and change the WaitElement add to only happen once, as it could lead to leftover waits that never got notified, leading to a dead database.
Merge pull request #2864 from rickardoberg/communitylockleak19

Community LockManager lock leak fix
Document the appropriate way to disable UDC.
Merge pull request #2863 from cleishm/1.9-default-config

Update default configuration files
Remove shell 'eval' command

And custom evaluator for 'trav'
Makes it possible to disable UDC through System property.

This change also makes UDC not fail if an invalid configuration
value is given, instead it interperts it as the default value.
Merge pull request #2872 from thobe/1.9-udc-configuration

1.9 UDC configuration
Merge remote-tracking branch 'upstream/1.9-maint' into 2.0-merge-1.9

Conflicts:
	community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/RWLock.java
	community/udc/src/main/java/org/neo4j/ext/udc/UdcSettings.java
	community/udc/src/test/java/org/neo4j/ext/udc/UdcSettingsTest.java
	packaging/standalone/standalone-advanced/src/main/distribution/text/advanced/conf/neo4j.properties
	packaging/standalone/standalone-community/src/main/distribution/text/community/conf/neo4j.properties
	packaging/standalone/standalone-enterprise/src/main/distribution/text/enterprise/conf/neo4j.properties
Merge pull request #2874 from cleishm/shell-no-eval

Remove shell 'eval' command
Merge pull request #2882 from tinwelint/2.0-merge-1.9

2.0 <-[:merge]- 1.9