This patch adds various combinators that help in constructing EditGenerators:
- noEdits
 - ifBound, specialized to ASTEdit
 - flatten and flattenVector which allow for easy construction from a set of sub edits.
 - shrinkTo, which generates edits to shrink a given range to another that it encloses.
 
I don't know about LLVM style preferences here, but a default argument to the example above seems reasonable too.