Rather than registering individual IRGen passes when we want to execute them, store function pointers to all the pass constructors on the ASTContext. This will make it easier to requestify the execution of pass pipelines.