Discard temporary file if committing fails.

It appears that if we don't explicitly call Discard() in this case, the
temporary file remains in the same directory as the destination file.
Add hover tooltips to the source viewer.

This allows users to hover over a Decl or Stmt in the source code to receive an
explanation of the node. The Stmt explanation doesn't include any information
related to the active function's state, so it is not as informative as the
tooltip produces by hovering over the dynamic evaluation tree.
Allow trace archives to contain an "annotations.xml" file.

This is recognised by OpenTrace and loaded as an AnnotationCollection. The
AnnotationCollection class is simply a thin wrapper around the underlying
wxXmlDocument, and currently does nothing. In the future this will be used to
allow annotating execution traces with additional information for particular
AST nodes, thread states, and process states.
Allow annotations to be included when saving execution traces.
Check that annotations.xml documents match our expectations.
Add AnnotationPoint wrapper, which represents all annotations on a specific
annotatable thing.

Add methods to AnnotationCollection to retrieve the AnnotationPoint (if it
exists) for a seec::cm::ThreadState, seec::cm::ProcessState, clang::Decl, or
clang::Stmt.
Show node's text annotations in tooltip.

When displaying a tooltip for a Decl or Stmt, if it has an annotation which
contains a text node, then show the contents of the text node in the tooltip.

Note that this doesn't yet allow for localising annotations.
Simply ignore unknown files in trace archives, as the trace viewer uses XML
files in the archive's root directory for various things.
Show ProcessState and ThreadState annotations in the ExplanationViewer.