First try at a scope manager
More refactoring
Refactor session types
Deferred work in progress
Finish deferred work in progress
Don't cache inner scopes within the ScopeManager. Track dirty inner scopes on a per-file basis.