Introduce the start of IR builder APIs, which makes it easier and less error
prone to create things.

PiperOrigin-RevId: 203703229
diff --git a/include/mlir/IR/Module.h b/include/mlir/IR/Module.h
index ec277d6..a12b387 100644
--- a/include/mlir/IR/Module.h
+++ b/include/mlir/IR/Module.h
@@ -31,7 +31,9 @@
 
 class Module {
 public:
-  explicit Module();
+  explicit Module(MLIRContext *context);
+
+  MLIRContext *getContext() const { return context; }
 
   // FIXME: wrong representation and API.
   // TODO(someone): This should switch to llvm::iplist<Function>.
@@ -47,6 +49,9 @@
 
   void print(raw_ostream &os) const;
   void dump() const;
+
+private:
+  MLIRContext *context;
 };
 } // end namespace mlir