Break up PlanningStrategy

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