Took the special main linkage code out of FunctionDecl? and put it into a new pass. There is also a lot of related clean-up done.