Upload script for support

This new entry to the 'bin' directory will upload the datastore
and logs to a write-only S3 bucket.
Further enhancements

* collect arguments rather than prompt the user
* only distribute in enterprise
Merge pull request #1144 from tinwelint/merge-1.9-into-master

Merge 1.9 into master
Neo4j Desktop Cleanup
 - creating default empty file if it doesnt exist when i want to edit it
 - graying out uneditable textfields
 - Re-branding Neo4j Desktop -> Neo4j Community
 - disabling extensions
 - hand cursor on link mouseover
 - removed edition
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.
Update tooling git repo location.
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.
Backport neo4j-desktop to 1.9
Merge branch '1.9-desktop-backport' of github.com:boggle/neo4j into 1.9-maint
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