Interprocedural analysis

Should be ready for some real-world testing - we can now check whether an array argument is null-terminated based on functions it calls as well as loops. Right now we are using the heuristic that if there exists a single loop in the function that treats the array as a null terminated or if it calls a single function which treats the corresponding formal parameters as a null-terminated array, then it is null terminated; otherwise it is not.