Fix: Better JRE detection in Windows

1. Looks for both 64-bit AND 32-bit JREs

2. Works with all JRE directory names
The old version assumed that there is exactly one space character in the
name (e.g. "C:\Program Files\Java\jre7")
32-bit JDKs/JREs are installed to "C:\Program Files (x86)\Java", which
has two spaces. Also, Java can be installed to a custom directory, so
the single space char assumption is not a good idea.

3. Console command uses the detected Java instead of "java" from PATH.
Introduce NEO4J_CONFIG and NEO4J_LOG vars

It will ease the job of package maintainers
Updated Setting API, accessible through Settings
Old GraphDatabaseSetting classes are now wrappers for Settings instances
Settings that should be File, are now File. Internal use has been overhauled to use File instead of String in as many places as possible
GcrSettings introduced, separate from GDS
UDC settings reintroduced, with appropriate checks in usage for whether it's on classpath or not
HostnamePort introduced as domain value for host:port or host:port1-port2 ranges
Functional programming used when appropriate, through Function and Function2, with helpers in Functions
Specification removed in favor of Predicate, and Specifications renamed to Predicates
Less warnings
Fixed TestIsolation so it doesn't hang on DeadlockException
Fixed license header
Preliminary fixes to get snapshot synchronization in place
Merge branch 'master' of https://github.com/neo4j/neo4j into configuration

Conflicts:
	community/kernel/src/main/java/org/neo4j/kernel/configuration/Config.java
	enterprise/cluster/src/main/java/org/neo4j/cluster/client/ClusterClient.java
	enterprise/consistency-check/src/main/java/org/neo4j/consistency/ConsistencyCheckService.java
	enterprise/consistency-check/src/main/java/org/neo4j/consistency/ConsistencyCheckSettings.java
	enterprise/consistency-check/src/main/java/org/neo4j/consistency/checking/old/ConsistencyRecordProcessor.java
	enterprise/ha/src/main/java/org/neo4j/kernel/ha/HighAvailabilityMembers.java
	enterprise/ha/src/main/java/org/neo4j/kernel/ha/HighlyAvailableGraphDatabase.java
	enterprise/ha/src/test/java/org/neo4j/ha/MultipleClusterTest.java
	enterprise/ha/src/test/java/org/neo4j/kernel/ha/HardKillIT.java
	enterprise/ha/src/test/java/org/neo4j/kernel/ha/TestMasterElection.java
	enterprise/ha/src/test/java/org/neo4j/kernel/ha/TxPushStrategyConfigIT.java
	enterprise/ha/src/test/java/org/neo4j/test/ha/TestIsolation.java

Also implemented snapshot synchronization for HA
Merge branch 'master' of https://github.com/neo4j/neo4j into configuration
Added undocumented ability to specify the order that relationship types are returned by traversals via REST
Fix for auto-index docs.
Got rid of a few sysouts.
Fixes an issue where a file lock for a store wouldn't be released when closing
Discourages use of Future#get() (without timeout). There was an issue where a call to ResponseFuture#get() never complete, which would mean that there was no response, and no timeout. That in itself is a bug and should be investigated. Short term though, including a timeout will solve it
Merge pull request #319 from tinwelint/ha-robustness-fixes

Ha robustness fixes
Fixes listener addition/removal

Tries to get listeners to events to register on init(), be removed on shutdown(). That makes some nasty bugs go away by ensuring events
  are not received when they no longer can be handled.
Fixes the ClusterClient life by adding an init() that was missing.
The above allow for the ClusterClient to be added to the life of HAGD as soon as it is created.
Touches up some tests.
Merge pull request #314 from jakewins/type-ordered-traversal

Expander type in REST
Merge pull request #320 from digitalstain/listener-lifecycle

Fixes listener addition/removal
OrderByTypeExpander Keeps ordering of type AND direction
Revert "Discourages use of Future#get() (without timeout). There was an issue where a call to ResponseFuture#get() never complete, which would mean that there was no response, and no timeout. That in itself is a bug and should be investigated. Short term though, including a timeout will solve it"

This reverts commit a6c23c7c079609223a46003d3d5a2f9382924a1e.
Fixes an issue where a call to ResponseFuture#get() never complete, which would mean
that there was no response, and no timeout. That in itself is a bug and should be
investigated. Short term though, including a timeout will solve it.