Add class sealing contracts
Initial work on new Class types

This commit introduces a new Class type
representation and adds initial support for
parsing the new types.
Add duplicate checking and tests
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
Remove colons from type syntax

This was an awful choice.
Change #:optional? -> #:optional

Another awful choice
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