Remove unnecessary trait
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
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.
Merge pull request #2137 from karabijavad/patch-1

Fix typo in QueryContext.java
Updated contributor list.
Merge pull request #2138 from systay/logical-naming

Touch up of naming
Merge pull request #2129 from systay/set-examples

Add examples of SET setting multiple properties
Move cost, cardinality, and solvedPredicates back into LogicalPlan

o Replaces PlanTableEntry with LogicalPlan
o Pulls cost and cardinality estimation code out of planners into logical plans
o Some clean up and test refactoring on the side
Move SemanticTable into LogicalPlanContext and cleanup leaf planners

o Unravels issue around Identifier <-> IdName confusion:
   (1) Might want to replace IdName with Identifier again since we don't have types for the latter
   (2) IdNames can be ambiguous due to name shadowing
Pull LogicalPlanContext out and turn {SimpleLogical|Projection}Planner into objects
Changed the algorithm for picking the best plan

Instead of picking a best plan from all the initial plans, we now pick a best plan per set of covered ids

Also disabled relationship seeks in ronja until we support relationship patterns.
Refactoring to make SimpleLogicalPlanner easier to test
Update README.asciidoc