Add tests about cluster startup

- master/slaves should always join a cluster when the database directory is empty
- slaves should always join a cluster when the database directory contains the store
  files but no logical log files
- a database directory with store files but no logical log files can be used
  to seed a cluster
Move command converters into it's own package
Move expression conversion to it's own package
Move Selections conversions to the convert package
Move pattern conversions to the convert package
Move query projection conversion to the convert package
Start solving Query using the converter pattern

The important difference with SimplePlannerQueryBuilder is that we
do a foldLeft over the clauses instead of having to use a recursive
call. Folding is simpler and can more easily be composed of
smaller units.
Move solving of MATCH to ClauseConverters
Create PlannerQueryBuilder and start using it in the plannerQuery converters
Tiny refactoring of RETURN handling in ClauseConverters
Handles WITH in plannerQuery converter
Handles UNION in plannerQuery converter
Handles UNWIND in plannerQuery converter
Make sure pattern expressions are accumulated correctly
Make sure projections are included in argument ids
Replace SimplePlannerQueryBuilder with converters
Remove Map[PatternExpression, QueryGraph] everywhere
Remove QueryPlanInput

Since it was merely used to move a UnionQuery together with the corresponding
Map[PatternExpression, QueryGraph], and the latter is now removed, QueryPlanInput
is no longer needed.
Merge pull request #2917 from systay/more-refactoring

More refactoring
Merge pull request #2895 from davidegrohmann/2.2-cluster-startup

Cluster startup tests