Tidy up RULE signature

BASIC_RULE is dead, RULE now refers to string graphs, and
BANG_GRAPH_RULE is introduced for !-graphs.  Similarly, there is now a
BANG_GRAPH_RULESET.
Introduce a Rewriter structure, to replace GraphSubst

This incorporates the low-level rule-only code from RulesetRewriter.
Make RulesetRewriter use Rewriter
Remove GraphSubst