WyRL: added SaturationRewriter #382.
The new saturation rewriter is based upon an idea I had last night.
Basically, it "exhales" and then "inhales" as a way of managing
inference and reduction rules.  Here, inhaling is the same as reduction
previously; whilst exhaling replaces the old iterative approach to
applying inference rules.  The essential issue with the old approach is
that I have found automata where the iterative approach leads to an
infinite loop.  Trying a "fair" strategy was one approach I explored,
but this doesn't seem to be enough.

WyCS: I also fixed two outstanding bugs in the solver core, which the
new saturation rewriter promptly discovered for me.
WyRL: minor bug fix for SaturationRewriter.
The SaturationRewriter was not maintaining the oneStepUndo relation
properly in some circumstances.  This was triggering the
assertValidOneStepUndo() check, and I've now resolved this.