Initial identifer namespacing work
Make namespaceIdentifiers less invasive

The rewriter will only introduce special names for identifiers if
there's shadowing involved. Specifically, if an identifier is never
projected through from one scope to another, it will not be altered.
In addition, trivial projections such as `WITH n AS n` are also
understood not to introduce ambiguity to identifiers.
Simplify inliningContext given our new contracts for shadowing

This also allows for more aggresive inlining. See StatementConvertersTest
for examples of AST -> PlannerQuery conversions that are now more inlining
happy.
Improve the clustering of identifiers to address scoping limitations
Move the namespaceIdentifiers rewriter to Planner
Merge pull request #3072 from jakub-/identifier-namespacing

Identifier namespacing