Large refactor to get rid of parser-level storage of class definition expression, and instead move to entirely expression-scope based lookup of class definitions. This refactor provides enables constructor overrides to be implemented properly, among other things.