Fixed issue where relationship loading could stop mid-way

A relationship iterator iterating lazily loading relationships as it
progressed could come to the conclusion that there were no more
relationships to iterate over, even if there had just been a fresh batch
loaded.
Merge pull request #2128 from tinwelint/2.1-rel-load-stop-fix

Fixed issue where relationship loading could stop mid-way
Merge pull request #2131 from tinwelint/2.1-merge-2.0

2.1 <-- 2.0
Remove unnecessary trait
Reuse existing parser rules
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/parser/CypherParser.scala
Introduce CostModel and some refactoring of logical planning

* Move cost, cardinality and covered ids from LogicalPlan to PlanTableEntry.
These properties are only interesting while planning, not once the plan is finished

* Use costs and not only cardinality for picking plans
Remove the OSGi example.

It was removed last year from 2.0 because it was flaky and it now fails
incomprehensibly on TeamCity. There doesn't seem to be any point
spending lots of time working out what is wrong with it just for this
one unimportant example.

Conflicts:
	community/embedded-examples/src/test/java/org/neo4j/examples/osgi/Neo4jActivator.java
	community/embedded-examples/src/test/java/org/neo4j/examples/osgi/OSGiDocIT.java
IndexLeafPlanner: Use the syntax sugar for PartialFunction

The reason we couldn't get it to work before is that the desugared code
evaluates the predicate twice and the unit test was returning
the same iterator object every time so the first time it was used,
it'd be consumed.
Add a missing hunk from the last change
Merge remote-tracking branch 'andres/more-logical-plans'

Conflicts:
	community/cypher/cypher-compiler-2.1/src/main/scala/org/neo4j/cypher/internal/compiler/v2_1/planner/logical/IndexLeafPlanner.scala
Planning clean-up
Update QueryContext.java

typo
Add examples of SET setting multiple properties

* Added example to SET and MERGE
* Removed the provisional warning on MERGE
Merge pull request #2135 from jakub-/planning-cleanup

Planning clean-up
Touch up of naming

An index scan returns all the nodes in an index. This is an operation we still don't have in Cypher.
We have unique index seek and normal index seek.
Introduce the StoreChannel abstraction, and the AdversarialFSA.

The StoreChannel interface is very similar to the API of the FileChannel class.
I had to introduce it because of the many final methods of the FileChannel.
The AdversarialFileSystemAbstraction needed to be able to throw exceptions from those methods
that were marked as final in the FileChannel, so I had to abstract away the FileChannel itself, and
introduce this new indirection. The StoreFileChannel wraps a FileChannel while exposing the
StoreChannel API.

The AdversarialFileSystemAbstraction is a file system that can be configured to throw exceptions and
failures as we please. This is useful for testing partial failure scenarios that our current robustness
suite does not cover, since it currently only works by killing entire processes - not individual
transactions.
Merge pull request #2137 from karabijavad/patch-1

Fix typo in QueryContext.java
Updated contributor list.
Additional cleanup after the introduction of StoreChannel