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
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
Updated HA services
Merge branch 'master' of https://github.com/neo4j/neo4j into configuration

Conflicts:
	community/kernel/src/main/java/org/neo4j/kernel/impl/nioneo/store/CommonAbstractStore.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/nioneo/xa/NeoStoreXaDataSource.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/TxManager.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/xaframework/XaFactory.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/xaframework/XaLogicalLog.java
	community/kernel/src/test/java/org/neo4j/kernel/impl/nioneo/store/TestNeoStore.java
	community/lucene-index/src/main/java/org/neo4j/index/impl/lucene/LuceneDataSource.java
	enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/HighAvailabilityModeSwitcher.java
Removed unused class
Added getEnum to Args utility
StringLogger.SYSTEM has automatic line flushing, just like the file-based StringLogger has
Formatting and tests
Transaction object for nested transactions can acquire locks with its acquireRead/WriteLock methods
Fixes whitespace and a missing license header
Merge pull request #322 from rickardoberg/configuration

Configuration and HA fixes
Fixed table formatting.
Unused imports.
Fixes test

Fixes test failure by setting properly the file name - this is due to changed behavior and may need to revisit
Makes use of TargetDirectory with a TestName @Rule and uses File instead of String concats.