A lot of code, particularly in the analyzer, has to perform a lot of duplication to handle functions/ObjCMessages/destructors/constructors in a generic setting.
The analyzer already has a CallEvent helper class abstracting over such calls, but it's not always suitable, since it's tightly coupled to other analyzer classes (ExplodedNode, ProgramState, etc.) and it's not always possible to construct.
This change introduces a very simple, very lightweight helper class to do simple generic operations over callables.
In future, parts of CallEvent could be changed to use this class to avoid some duplication.