Initial work on new Class types

This commit introduces a new Class type
representation and adds initial support for
parsing the new types.
Clean up object init and add support for get-field
Improve Class type printing

Still needs a lot of improvement, especially pretty
printing with line breaks
Support #:extends clause with a class type
Fix existing uses of class types
Add a class: that does preprocessing of class macros
Initial work on type-checking class expressions
Basic methods now mostly type-check
Make self types mostly work
Non-working attempt at local methods
Made more absent/presence checks work
Refactor to use sets
Add additional checks that don't work yet
Start to support local method calls
Fix class parsing tests for syntax change
Began some work on supporting class top-level
Move code around to accommodate non-expected checking
Make methods type-check without useless annotations
Add unit tests for classes
Check `super-new` calls

Still need to use this information to adjust the class
type init clauses
Add support for override