Refactoring of LogicalPlan and QueryGraph

A LogicalPlan now has a `solved` field, that indicates the
corresponding QueryGraph that the plan solves.

QueryGraph now only exists in one version - the difference
between Optional and mandatory patterns is seen by where
the QueryGraph is used and not by a different type.
Introduced a case class instead of tuples for Selections predicates
Change QueryGraph to store optional matches as sub queries
Rename also elements inside pattern expressions
Move helper identifier name functionality to a support class
Teach SimpleQueryGraphBuilder to extract pattern predicates into sub queries
Make all the tests green again...
Add SemiApply and planning for it
Adds SemiApplyPipe which allows Ronja to take on some pattern predicates
Refactoring of selection planning
Tiny fix
Merge pull request #2288 from systay/subgraph-signature

Allow Ronja to handle pattern predicates
Change ProjectedPathConversion to use continuation passing style

o Simplifies PathValueBuilder
o Pulls out projectionStepConverter
o Removes ProjectionSteps
o More tests
Tentative fix for refcard tests failing in Windows
Small cleanup
Tentative fix 2 for windows/refcard-tests build. Pom cleanup.
Merge pull request #2291 from davidegrohmann/ronja-named-path

Change ProjectedPathConversion to use continuation passing style
Rewrite var length relationship properties correctly in the where clause
Moved named path handling to ast rewriting by inlining them as PathExpressions

o Removes named path from QueryGraph
o All named path patterns are turned into anonymous patterns after inlining
o We only inline named patterns in MATCH for now (as opposed to MERGE, CREATE, etc.)
Fix dependencies for IterablePredicateExpression