Tab-completions provided by TransactionProvidingApp also decorates tab-completion in a transaction
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
Make IndexPopulationFailures print properly resolved label name and property key ids
Put Ignore annotations on compatibility suite classes since they aren't
run directly, something that the annotation message says as well.
Allow data read operations in any transaction.

Previously data read operations were not allowed in schema transactions,
but the only important restriction is to disallow data write operations and
schema write operations in the same transaction.
Fix array storage corruption in batch inserter.

This addresses an issue where, when changing an array property from one array to another array of the same size,
the dynamic record storing the original value would get marked as not in use twice, putting it's id in the list
of reclaimed ids twice. That in turn would, obviously, allocate the same dynamic record twice to two different
properties.
Correct behaviour when committing a transaction fails.

When a transaction fails to commit, it should still be possible to roll it back.
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.
o Safe equals() on LazyArrayProperty and clearly describes why the type
  member field needs no synchronization or volatility; both for
  readability and for reasoning about potential future changes to
  synchronization thereabout.

co-author: Tobias Lindaaker, @thobe
Merge pull request #1151 from jakewins/batchinserter-array-corruption

Fix array storage corruption in batch inserter.
Fix for PMD warnings in DesktopModel
Merge pull request #1149 from tinwelint/2.0-fix-property-diffset

Corrects DiffSets problems
Provides detailed information about kernel extensions available on the class path in exceptions stating that there are no available extensions of a specific type
Replacing the execution plan page. Removes the duplicate execution-plans page.
Merge pull request #1108 from boggle/master

Make IndexPopulationFailures print properly resolved label name and prop...