if case
Last cases for typechecking statements

Still some work to do in error reporting, but I'm going to start on the
abstract interpretation now.