Regenerate Clang ASTs from stored source code (closes #19).

This patch essentially implements the method proposes in the comment on #19.

GetCompileForSourceFile had an added parameter, CheckInputExists, which is used
to set the similarly named option on the clang Driver. When reconstructing
ASTs this parameter should be set to false, as the files will be loaded from
the source code stored in the instrumented Module.

Allow clients to access the llvm::MemoryBuffer containing the file contents in
MappedCompileInfo::FileInfo objects.

Allow clients to access the source files in a MappedCompileInfo object.

In MappedModule's constructor, load the compile information from the Module
first, as it will be used when reconstructing ASTs.

In MappedModule:getASTForFile(), rather than using
MappedAST::LoadFromCompilerInvocation() we do the following:
 1) Create a new ASTUnit using the CompilerInvocation.
 2) For each source file in the main file's MappedCompileInfo, create a virtual
    file in the ASTUnit's FileManager, and then override that file's contents
    in the ASTUnit's SourceManager using the MemoryBuffer from the
    MappedCompileInfo::FileInfo (stored in the instrumented Module).
 3) Load the ASTUnit using ASTUnit::LoadFromCompilerInvocationAction().
 4) Construct the MappedAST using MappedAST::FromASTUnit().

There are still problems with the AST regeneration, notably issue #23.