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
A couple of optimizations regarding read performance:

* Cache refers to relationship types as ints instead of Strings.
* Binary search on sorted arrays for finding properties and
  relationship types in the cache.
* Less objects instantiated during getting and iterating relationships.
* Reduced number of map lookups significantly for a getProperty call,
  especially outside transaction or in transactions without any changes.
  (previously 8 lookups whereof 2 synchronized, now down to as low as 2)
* Uses ThreadLocal as mapper from thread to transaction
* Refactored LockReleaser into TransactionState, associated with each
  transaction instead
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
Changes after initial feedback:
* Removed some old conflict code which was commented
* Uses Arrays#binarySearch instead of the temporary solution by copying its code and modify it
* Changed name of IntArrayIterator to something more appropriate
* Renamed method and removed unecessary TxManager#init code
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
Merge pull request #307 from tinwelint/read-optimizations

A couple of optimizations regarding read performance:
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