Refactor how Desktop install and locate configuration files.
Fix the Neo4j Desktop vmoptions include path, and add an option to the uninstaller, to also remove configuration and log files.
Fix #1522

Using MERGE on patterns larger than single nodes requires
at least one bound node to be valid. This commit throws
and understandable error for this case
Revert the change that removed the Neo4j Desktop Install4j license injection point.

Also add a user-local plugins directory to the classpath.
Add a plugins directory feature.

 - Add a plugins directory to the installation directory where users (or administrators) can add jar files with plugins and extensions.
 - Added a button to the settings panel that opens Explorer (or the platform directory browser) in the plugins directory.
 - Obviously also added it to the launcher classpath. This was the hard part, because we wanted to put the directory under $APPDATA, but this could not be made to work with the current version of Install4j.
Fix the window-close-database-shutdown behaviour that I broke in my eager refactoring.
Prohibit equality comparison of incomparable values

o This ensures that nodes can only be equality compared against nodes, and relationships only against relationships
   (particularly prohibits comparing entities against map parameters)
Get the name of the sub-directory under APPDATA from the installer, instead of hard-coding it.
Only return same relationship once.

If providing the same RelationshipType more than once to the
getRelationships() method of Node, one would get relationships of that
type more than once. This change deduplicates the types, ensuring that
each relationship is returned no more than once.

This fixes #1477.
Merge pull request #1546 from chrisvest/refactor-desktop-config

Enable server extensions in Neo4j Desktop
Merge pull request #1563 from thobe/2.0-deduplicate-reltypes

Only return same relationship once.
Check in manual test script for Desktop.
fix udc_host IP resolution
Fixes issue where more HA availability messages than necessary were broadcast

Previous attempt in this area left open a bug where for example the master receiving
 a SlaveIsAvailable event would make it broadcast a MasterIsAvailable event again,
 refuelling a loop of such exchanges. This makes sure that the instance's state and
 the incoming transition are examined to decide on what to broadcast.
Introduces tests for the above.
added documentation of OS X Mavericks' missing java/ popup
Improved data provided by AvailabilityGuard to help debugging.
Merge pull request #1565 from jexp/fix_udc_host_ip_resolution

fix udc_host IP resolution
Merge pull request #1548 from systay/1522

Fix #1522
Merge pull request #1559 from boggle/2.0-incomparable-values

Prohibit equality comparison of incomparable values
Refactors MERGE to be handled by as an UpdateAction instead of as a Pipe