More work on symbol table building:

We probably won't need the Undefined info instances.

Instead, if we find a

 - redeclared class/field/variable, we enter the class/field/variable,
   but with an Undefined type, and print an error.

 o redeclared method, enter the method, but with an Undefined return
   type, and print an error.

This means that type-checking can always proceed, but the user will
not be bothered with type errors in expressions/statements containing
these doubly declared variables, while still being able to see
errors in other expressions/statements.