Introduce FunctionName

Only use ast.Identifier for identifiers - let FunctionInvocation use
FunctionName
Add pattern relationships to QueryGraph
Package clean up

* Moved all logical plans into their own package
* Moved the steps package into the logical package
Add expand logical plan
Add expansion planning
Change how NewPlannerTestSupport works

Now uses a failure that makes it easier to see where the problem originates from
Add ExpandPipe and plugged it in

* Still not able to handle self referencing patterns
Add toTreeString to LogicalPlan to aid debugging
Add uniqueness predicates for MATCH patterns
Add code for expand that expands into already existing patterns