Fix a bug where MappedParam and MappedLocal would try to get AST mappings that hadn't yet been created (introduced by 7703322859d1b2465fca9292b5ed061264f6aa7c).
Don't close the trace before calling std::exit(), because this will prevent archiving.
Add WX_TOOLCHAIN option to specify which wxWidgets build configuration should be used.
Fix handling of empty/non-defined WX_TOOLCHAIN.
Add context event receiving for StateEvaluationTree, and highlight nodes if their clang::Stmt or seec::cm::Value is currently highlighted by a context event.
Send context events when the mouse moves over a Decl or Stmt in the source code viewer.
Update StateEvaluationTree to send context events for highlighting seec::cm::Value objects if:
- We are moving the mouse over a node with a non-null Value.
- We have moved the mouse out of a node that had a non-null Value (i.e. one that was highlighted).

Update the StateGraphViewer's handling of context events for highlighting seec::cm::Value objects so that a nullptr Value causes the last-highlighted Value to be unhighlighted (to correctly operate with the StateEvaluationTree).
Specialize the description of LValueToRValue implicit casts to avoid confusion (as the visible type does not change).
Move logic for creating CompilerInvocation for a mapped compile into MappedCompileInfo::createCompilerInvocation().

Move logic for setting up a virtual file system from source files into a MappedCompileInfo into MappedCompileInfo::createVirtualFiles().
Store a reference to an AST's MappedCompileInfo in the MappedAST.

Remove unused MappedAST methods LoadFromASTFile() and LoadFromCompilerInvocation().
Add a new method for formatting Stmt text that uses tokens from the original source code rather than pretty-printing the Stmt.

This system uses does not expand macros if they were defined in system headers, in order to hide the messy details from students. It does expand macros that weren't defined in system headers, so that students can see the full behaviour of their own macros.

This system currently only works for Stmts that are in the main source file. If the Stmt locations can't be found, are in a non-main source file, or start and end in different source files, then we fall back to the old pretty-printing system.
Update formatStmtSource() method so that it handles Stmts that are not written in the main file (i.e. functions that are defined in an #included file).

Also prepare for caching tokens outside of the formatter, so that we can avoid repeatedly preprocessing / raw lexing the source files. At the moment the per-AST cache is only used internally - the next step will be to expose a cache manager that can be passed in to the formatter, e.g. to be held by StateEvaluationTree.
Move to a more consistent colour and highlighting scheme based on Ethan Schoonover's Solarized (http://ethanschoonover.com/solarized).

Also make Graphviz use monospace font and emit SVG standard compliant fontnames. This appears to fix the error where some value texts would exceed the bounds of their cell (e.g. "NULL").
Rewrite pushing unused characters to fix a warning from Clang's static analyzer.

Also, correctly adjust the number of characters read to reflect the fact that we have "unread" these characters.
Force Times-Roman fonts when rendering graphs on OS X, because Graphviz doesn't seem to be able to resolve fontnames correctly, and using Times-Roman produces a less horrible graph than Monospace.
In TracedFunction::getPointerObject(), look through constant cast expressions and get the pointer object from the operand.
Remove unused code (from the old pretty-printing method).
Merge upstream development into local (ubuntu) development.
Hide FunctionToPointerDecay implicit casts from the evaluation tree.
Add the ability to export the current dynamic evaluation tree to a bitmap.