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
Make the UDC cope with semver numbers.
PMD configuration.
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.