Traverse Expr ExternArguments in IRVisitor
Remove IRDeepVisitor, visit_function helpers

These were actually incomplete and a poor fit for the initial
FindCalls implementation, since extracting all ExternArgument
functions correctly required a ton of duplication of logic 
otherwise isolated within Lower's `populate_environment`.
Move call graph computation into FindCalls helpers

I've rolled back to just using the existing logic, exactly as-is,
from Lower's `populate_environment`, but moved it inside a new 
FindCalls utility module.