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.