Correct implementation of get() for rvalue Maybes.
Update pointer object for byval argument pointers (because it will differ from the caller's pointer, but is valid).
Move information for function records out of TracedFunction and into a new class RecordedFunction.

This removes a lot of unnecessary information from completed functions (in TraceThreadListener's RecordedFunctions), and prevents any usage of the TracedFunction methods on completed functions.
Add some simple regression tests.
Correct test for qsort() and add a test for bsearch().
Add a method to find the llvm::Function at a given runtime address.
Make CStdLibChecker always get pointer objects from the TracedFunction that was active when the CStdLibChecker was created.
Correct pointer object tracking through qsort() and bsearch().

Modify TracedFunction to allow the creation of "shim" objects, which have no FunctionIndex. These are used to represent qsort() and bsearch() themselves. A shim TracedFunction's pointer object information for llvm::Arguments holds the pointer objects for the arguments that were passed to the shim's called function (i.e. for qsort() the shim holds the pointer object information for the pointers received by the comparison function).

Also fix a bug with bsearch() where the result was not being returned, or associated with the call Instruction.
Add some macros to simplify the CMake test definitions.

Add some extra tests for bsearch() that expect failure.
Update the externally used CStdLibChecker methods to set a temporary note indicating the parameter being checked.

Privatise all methods that aren't externally used.

Update some runtime error descriptions (particularly remove unnecessary information such as raw memory addresses).