Nice "repeating reduction" solution for the retries desugaring

Downsides of this change:

- Had to merge the two languages again because I couldn't figure out how
  the scoping worked.
- A lot of matching operations seem to produce copies in Rascal, which
  makes stateful modification of the things I'm iterating over hard (in
  this case, add states to the model). So, the code that does the
  eventual stateful modifications doesn't look very nice and cost
  a lot of sweat ;).