AST: Remove layering violation with Sema

Scope lives in Sema and cannot be used in AST. Shuffle things around.