Move PeriodCommitHint AST node out of Clauses

And rename Hint to UsingHint
For annotation, use ASTNode+Position over objId
Use SemanticState to track expandStar rewrites
Split ClosingClause

Into HorizonClause for scoping, and ProjectionClause for projection
Make expandStar match on clauses

Rather than on the ReturnItems
Introduce _PRAGMA WITH NONE

Used when all projections have been inlined
Introduce _PRAGMA WITHOUT

Used to remove identifiers from scope
Use _PRAGMA WITHOUT to remove introduced identifiers
Allow additional items on `WITH *` and `RETURN *`

e.g. `WITH *, 1 AS m`

Also use this in pre-semantic-check rewriting, to ensure
`ORDER BY` clauses on `WITH *` and `RETURN *` are correctly normalized,
removing the need to do this again during `projectFreshSortExpressions`.
Merge pull request #3115 from cleishm/semantic_playground

Allow additional items on `WITH *` and `RETURN *`