Add flag for printing a whole program
First draft of cross-module type checking

Currently, all top-level types are imported. No alias resolution
happens so you need to use "import open M" atm.