Add seec::util::writeJSONStringLiteral() for writing a string as a JSON string literal.
Add methods for accessing the mapped compilation info of all files.
Initial work on printing state information suitable for use with OnlinePythonTutor.
Add basic support for recording and restoring writes to FILE * streams.
Add convenience methods for getting the StreamState for stdout. Print stdout in OnlinePythonTutor states.
Record FILE * stream writing from fputc, putchar, and puts.
Record FILE * stream writes performed by fwrite().
Move static_all_of into seec::ct.
Add seec::ct::static_any_of, for checking if at least one of a compile time sequence of bools is true.
For SimpleWrapper, construct a CIOChecker only when it is required by at least one of the WrappedArgumentChecker types for the function's arguments, otherwise use a CStdLibChecker.
Move common argument checking code from SimpleWrapperImpl to its own class, ArgumentCheckerHandler.
Only pass seec::trace::DIRChecker to WrappedArgumentCheckers that require it.
Only construct a DIRChecker if at least one of the argument checkers requires it.
Specialize ArgumentCheckerHandlerImpl for the case where there are no input arguments.
Only access the streams when a CIOChecker is required by at least one argument.
Add FILE * stream recording for printf() and fprintf(). This required changing these to intercepted functions (rather than old-style DetectCalls).

Also, correctly record a newline character after the string written by puts().
Rename seec-trace-print -> seec-print, seec-trace-view -> seec-view.
When a SourceViewerPanel is first created, load the main source file from each AST into it.
Show the type of Expr nodes in the hover tooltip of the StateEvaluationTree.
Add DIR * style opaque pointer handling for FILE * streams. We should remove the ValueOfPointerToFILE classes now.