Add basic parser support for operands:
 - This introduces a new FunctionParser base class to handle logic common
   between the kinds of functions we have, e.g. ssa operand/def parsing.
 - This introduces a basic symbol table (without support for forward
   references!) and links defs and uses.
 - CFG functions now parse and build operand lists for operations.  The printer
   isn't set up for them yet tho.

PiperOrigin-RevId: 205246110
diff --git a/lib/IR/AsmPrinter.cpp b/lib/IR/AsmPrinter.cpp
index 0e5d101..424487c 100644
--- a/lib/IR/AsmPrinter.cpp
+++ b/lib/IR/AsmPrinter.cpp
@@ -395,6 +395,8 @@
   // TODO: escape name if necessary.
   os << "  \"" << op->getName().str() << "\"()";
 
+  // FIXME: Print operand references.
+
   auto attrs = op->getAttrs();
   if (!attrs.empty()) {
     os << '{';