Support for per-user .vmoptions in Neo4j Desktop
Make JettyLoggerAdapter handle string formatting errors
Merge remote-tracking branch 'upstream/1.9-maint'
Merge branch '2.0-vmoptions'

Conflicts:
	packaging/neo4j-desktop/neo4j-desktop.install4j
	packaging/neo4j-desktop/src/main/java/org/neo4j/desktop/ui/DesktopModel.java
fixed merge bug
Do not set -Xmx1g in install4j as that can prevent user customization
Put Ignore annotations on compatibility suite classes since they aren't
run directly, something that the annotation message says as well.
Corrects DiffSets problems

There were problems in how the added/removed parts of DiffSets were
populated and managed in general. The problems were exposed in that
the 'remove' part contained invalid and/or too few entries and the
'added' part contained too many entries. In the property scenario
the diff set was used to remove the old property and add the new.
Add and remove were issued separated from each other, which made those
step on each others toes.

These things were changed:
o Introduced DiffSets#replace which does proper add/remove semantics
  knowing that one value replaces another.
o Removed null from the added/removed sets management by using empty sets
  in place of null. This makes for less checks, less code, more
  intuitive code and actually less objects being created since a set
  may not need to be created to remove something that it doesn't have.
o All *ArrayProperty (extends SafeProperty) classes have their value()
  method return a clone of the actual array. This fixes a problem with the
  initial test used to drive all these changes, where the test changed and
  reused an array property value read from a node.

co-author: Tobias Lindaaker, @thobe