Deduplicate large parts of the worklist processing (GreedyPatternRewriteDriver::processWorklist).
The new class hierarchy is as follows:
GreedyPatternRewriteDriver (abstract)
^
|
-----------------------------------
| |
RegionPatternRewriteDriver MultiOpPatternRewriteDriverAlso update the Markdown documentation.
Depends On: D142623
I sorted the functions in here alphabetically, but not the implementations below. That would make the diff harder to read.
Also updated many of the comments.