Support for affine integer sets

- introduce affine integer sets into the IR
- parse and print affine integer sets (both inline or outlined) similar to
  affine maps
- use integer set for IfStmt's conditional, and implement parsing of IfStmt's
  conditional

- fixed an affine expr paren omission bug while one this.

TODO: parse/represent/print MLValue operands to affine integer set references.
PiperOrigin-RevId: 207779408
diff --git a/lib/IR/Statement.cpp b/lib/IR/Statement.cpp
index 068e498..ffc210a 100644
--- a/lib/IR/Statement.cpp
+++ b/lib/IR/Statement.cpp
@@ -295,6 +295,8 @@
   delete thenClause;
   if (elseClause)
     delete elseClause;
+  // An IfStmt's IntegerSet 'condition' should not be deleted since it is
+  // allocated through MLIRContext's bump pointer allocator.
 }
 
 IfStmt *IfStmt::clone() const {