First step in getting LLDB ready to support multiple different type systems.

This is the work done by Ryan Brown from http://reviews.llvm.org/D8712 that makes a TypeSystem class and abstracts types to be able to use a type system.

All tests pass on MacOSX and passed on linux the last time this was submitted. 

llvm-svn: 244679
diff --git a/lldb/source/Expression/ClangExpressionParser.cpp b/lldb/source/Expression/ClangExpressionParser.cpp
index d59e8e0..0e5e3f9 100644
--- a/lldb/source/Expression/ClangExpressionParser.cpp
+++ b/lldb/source/Expression/ClangExpressionParser.cpp
@@ -334,6 +334,8 @@
         ast_context->setExternalSource(ast_source);
     }
 
+    m_ast_context.reset(new ClangASTContext(m_compiler->getTargetOpts().Triple.c_str()));
+    m_ast_context->setASTContext(ast_context.get());
     m_compiler->setASTContext(ast_context.release());
 
     std::string module_name("$__lldb_module");