Silence -Wcast-qual for seec-trace-view, because wxWidgets raises many of these
warnings.
Initial prototype for template-based intercepted function implementations.

The template system is in lib/Runtimes/Tracer/SimpleWrapper.hpp, and an
example of its use is given by the implementation of intercepted functions
fegetexceptflag() and fesetexceptflag() in lib/Runtimes/Tracer/WrapCfenv_h.cpp.

First, a SimpleWrapper object is generated. This template class accepts a
variadic list of SimpleWrapperSetting enum class values. These settings can be
used to indicate that the wrapper should acquire specific locks. The constructor
required one input: the CStdFunction value for the function that is being
checked.

The SimpleWrapper's operator() is then called, which accepts:
 - The original function.
 - A predicate which accepts the original function's result and returns true
   iff that result indicates success, and false otherwise.
 - Then each of the function's arguments.

The function's arguments may be "wrapped" in a class to provide information to
the SimpleWrapper, such as how to check the argument's input value, or how to
record state that was written to a pointer argument.

The SimpleWrapper's operator() will:
 - Find the thread listener, instruction, and instruction index.
 - Call the thread listener's enterNotification() method.
 - Acquire all locks requested by the settings.
 - Create a CStdLibChecker for the current instruction and function.
 - Perform input checking for each of the arguments.
 - Call the original function.
 - Determine if it was successful using the supplied predicate.
 - Notify the thread listener of the Call Instruction's new value.
 - Perform output recording for each of the arguments (individual arguments may
   choose not to record output if the original function was not successful).
 - Call the thread listener's exitPostNotification() method.
 - Return the result of the original function.

Note that this system is yet to support wrapping functions that return void,
and only has some basic argument wrappers.