Ensure Cypher range() works with negative step values

Fixes #2269
Allow Cypher split() with empty separator
Merge branch 'range-fix' into 2.0-maint
Fix merge problem in Cypher docs.
Merge remote-tracking branch 'upstream/2.0-maint'

Conflicts:
	community/cypher/cypher-compiler-2.0/src/main/scala/org/neo4j/cypher/internal/compiler/v2_0/commands/expressions/MathFunction.scala
	community/cypher/cypher-compiler-2.0/src/main/scala/org/neo4j/cypher/internal/compiler/v2_0/commands/expressions/StringFunctions.scala
	community/cypher/cypher-compiler-2.0/src/test/scala/org/neo4j/cypher/internal/compiler/v2_0/commands/expressions/SplitFunctionTest.scala
Merge branch 'range-fix-master'
Documentation fixes for Cyper/CSV.

* Use the correct ' character.
* Make graphgist read and write UTF-8 files.
* Copy csv files to the correct location.
* Get rid of the copy plugin, which isn't compatible with mvn 3.2.1.
Add information about named paths into the query graph
Refactored code around greedy planning strategy for readability
Make all leaf planners objects that get passed the query graph and return a CandidateList
Introduce PlanningStrategyConfiguration and replace generateLeafPlanCandidateList
Refactor out some shared code in GreedyPlanningStrategy
Rename OptionalMatch*IT to *PlanningIT
Introduce ProjectNamedPath logical plan