Checkpoint:
  If all the labels in a label group (other than one) exit by jumping to that other label group, turn that other label group into an exit label.
  Expand ControlFlowSimplifier to hoist exit labels out of label groups where possible.
  Fix CollapseNulls producing a bad AST in cases where a single-label label group contains a label group exit.
  Ensure CollapseNulls runs after ControlFlowSimplifier simplifies control flow, so that more loops get turned back into proper for loops.
When extracting an exit label, append a JSExitLabelGroupExpression to the end of the prior label to preserve control flow
Comment out the complex logic for turning a single-label label group into a do loop in CollapseNulls since it's busted
Checkpoint:
  Fix ComputeRecursiveExitLabel not aborting when a cycle is detected
  Fix ControlFlowSimplifier not handling nested label groups
  Remove a Debugger.Break
Checkpoint:
  Record outer break/continue expressions as untargetted exits from a label
  Record return expressions as untargetted exits from a label
  Narrow the cases where exit labels can be extracted.
Handle recursive generic types when building field lists.
Turn off control flow simplifier tracing