Enhance MLIRContext and operations with the ability to register diagnostic
handlers and to feed them with errors and warnings produced by the compiler.
Enhance Operation to be able to get its own MLIRContext on demand, simplifying
some clients.  Change the verifier to emit certain errors with the diagnostic
handler.

This is steps towards reworking the verifier and diagnostic propagation but is
itself not particularly useful.  More to come.

PiperOrigin-RevId: 206948643
diff --git a/lib/Parser/Parser.cpp b/lib/Parser/Parser.cpp
index 0f4a3a5..a468c9e 100644
--- a/lib/Parser/Parser.cpp
+++ b/lib/Parser/Parser.cpp
@@ -1548,7 +1548,7 @@
   // We just parsed an operation.  If it is a recognized one, verify that it
   // is structurally as we expect.  If not, produce an error with a reasonable
   // source location.
-  if (auto *opInfo = op->getAbstractOperation(builder.getContext())) {
+  if (auto *opInfo = op->getAbstractOperation()) {
     if (auto error = opInfo->verifyInvariants(op))
       return emitError(loc, Twine("'") + op->getName().str() + "' op " + error);
   }