Simplify CandidateList by removing pruning
Move covering concept from LogicalPlan to QueryGraph
Renamed Projections to QueryProjection
Introduced the concept of NoProjection
Introduce PlannerQuery

Instead of using QueryGraph to represent a whole
query, this commit now introduces a PlannerQuery,
which has this role. The PlannerQuery contains a
QueryGraph and a QueryProjection, and the WITH
structure of a query.
Break up PlanningStrategy

Now two parts solve CypherQueries together -
QueryGraphSolver solves the actual MATCH part
of a query, and QueryPlanningStrategy handles
projection and WITH.
Add AggregationProjection

This allows a PlannerQuery to represent a query
with aggregation
Made cartesianProduct use greedy planning
Merge pull request #2396 from systay/ronja-refactoring

Ronja refactoring
Ensure getRelationships(...) returns re-usable Iterable
Remove Iterators that pretend to be iterables