Utility to build a function call out of this reference and argument.
Given array of foreach parameters and an aggregate type, find best opApply overload, if any of the parameter types are missing, attempt to infer them from the aggregate type.
Figure out what is being foreach'd over by looking at the ForeachAggregate.
Determine if operands of binary op can be reversed to fit operator overload.
Helper function to turn operator into template argument list
Operator overload. Check for operator overload, if so, replace with function call.
Search for function funcid in aggregate ad.
Handles operator overloading.
Specification: Operator Overloading