Refactor SourceInfo into Source.

A Script object is associated with a Source object (HAS-A relation.)

A Source object describes the source code (more specifically, the LLVM
module) that is going to be compiled.

BCCContext contains the context used in a Source object.

BCCContext is now managed by the user not the libbcc itself. That is,
user should supply the context object when they create a Source object.

Change-Id: Icb8980d6f15cf30aa0415e69e3ae585d990dc156
diff --git a/lib/ExecutionEngine/ScriptCompiled.h b/lib/ExecutionEngine/ScriptCompiled.h
index 7b7b62a..8752aa3 100644
--- a/lib/ExecutionEngine/ScriptCompiled.h
+++ b/lib/ExecutionEngine/ScriptCompiled.h
@@ -17,17 +17,17 @@
 #ifndef BCC_SCRIPTCOMPILED_H
 #define BCC_SCRIPTCOMPILED_H
 
-#include "Compiler.h"
-#include "Script.h"
-
-#include <bcc/bcc.h>
-
 #include <list>
 #include <map>
 #include <string>
 #include <utility>
 #include <vector>
 
+#include <bcc/bcc.h>
+
+#include "Compiler.h"
+#include "Script.h"
+
 namespace llvm {
   class Module;
 }
@@ -73,12 +73,8 @@
 
     ~ScriptCompiled();
 
-    int readModule(llvm::Module *module) {
-      return mCompiler.readModule(module);
-    }
-
-    int linkModule(llvm::Module *module) {
-      return mCompiler.linkModule(module);
+    int readModule(llvm::Module &pModule) {
+      return mCompiler.readModule(pModule);
     }
 
     int compile(const CompilerOption &option) {