Don't stop neo data source in case of failure

when switching to slave, because it will prevent future switch tries with
NPE in CommonAbstractStore.
Merge pull request #1853 from tinwelint/1.9-slave-switch-retry-thingie

Don't stop neo data source in case of failure
Adding System.out of which processes gets dumped, for debugging purposes. It's OK since this class is used for in testing/debugging
Adds test for Monitors and fixes issue with listener removal

The test MonitorsTest.shouldUnregister() was failing with a ClassCastException.
 The reason was that it was doing the cast on a field different than the one that
 it was performing the instanceof check.

Conflicts:
	community/kernel/src/test/java/org/neo4j/kernel/monitoring/MonitorsTest.java
Merge branch 'neo4j/1.9-maint' into master

Conflicts:
	enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/HighAvailabilityModeSwitcher.java
Merge pull request #1868 from cleishm/2.0-merge-1.9-maint

Merge branch 'neo4j/1.9-maint' into master
Unused imports
Refactored the test facility DumpProcessInformation

to be instantiable where a Logging dependency is accepted, instead of
printing to System.out
Correct election outcome logging
Typo
Added ability to dump to file directly, use '--tofile'
Also fix false index collisions for online indexes

The story so far:

* Indexes store all numbers as doubles, and that means that large long values
  can coerce to the same double values and cause collisions in the index.
  We fixed this for indexes that are populating, by making them read colliding
  values out from the property store to double check if the collision is real
  or not.
* We also added a similar "exact match" filtering to the index lookup
  operations on StateHandlingStatementOperations, to fix index lookups.
* What we didn't fix in the first round, was adding new stuff to indexes that
  are online. This is the bug that Mattias found.
* Specifically, the UniquePropertyIndexUpdater verifies that the constraint is
  still holding in its close method.
* This is super bad, because the close method is called in commit - not in
  prepare, not during the transaction - in commit. Huge no-no.
* Initially you'd think that this puts recovery at risk, but that turns out not
  to be the case, because during recovery, we use a normal index updater
  instead of the unique one.
* So this means that the following scenario was possible: Add two nodes with
  similar but distinct long values to the index. The
  ConstraintEnforcingEntityOperations is fine with this because the values are
  really different. However, the UniquePropertyIndexUpdater trashes the
  transaction in commit. Now suppose the entire database server crashes for
  whatever reason, and we must do recovery. We recover the index using the
  normal updater that just adds the values without checking any constraints.
  And this is actually totally fine, because we filter for exact matches in the
  StateHandlingStatementOperations. And so only then does the index work as
  advertised. We had to crash the database in order to add a valid value to the
  index. Except, there is a window between the crash of the transaction, and
  the crash of the database, where the transaction could have been retried with
  the same exact value and encounter the same exact crash. Now we recover both
  transactions, and boom: we got a duplicate in the unique index!
* The solution I'm going for currently is to just not verify the constraint in
  the UniquePropertyIndexUpdater.close method... just accept the value as
  given, and trust that the ConstraintEnforcingEntityOperations has done it's
  job.
* Implementing this solution is made a bit harder by a number of tests
  operating directly with the IndexUpdaters, instead of checking the publicly
  observable behaviour.
* I intend to rephrase these tests in terms of higher level APIs, but in the
  mean time (because there are a lot of cases to cover) we will have to ignore
  all the now failing tests, and see what the robustness suite says.
Fixes #1876 - Null nodes and properties should be ignored when SETting properties
Makes sure a literal map can't be used with the SET clause
Merge pull request #1881 from chrisvest/duplicate-number-index-fix

Also fix false index collisions for online indexes
Merge pull request #1882 from systay/1876

Fixes #1876