This is mostly motivated by me being annoyed that in C many functions are implemented as builtins and everybody keeps forgetting about it while writing checkers, leading to checkers not working at all except on LIT tests, which is fairly hard to notice. For that reason i'd like to put a bit more effort into the CallDescription interface, so that to de-duplicate as much code as possible so that nobody needed to remember things.
This is also a necessary step if we want to evalCall() calls that don't correspond to any CallExpr, such as automatic destructor calls.
This patch does varied amount of refactoring in different checkers while updating them after the API breakage. For instance, ChrootChecker is completely converted to CallDescriptions, but CStringChecker is waiting for a few more updates to the CallDescription interface before it can be converted.