major refactoring of type checker
WIP
Add an UnknownType
Pointer nesting limited to 3 degrees.