66e96d8c

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Mutation: RemoveClause operator + operator sum type

Add a RemoveClause function-declaration mutation operator that removes one
equation from a multi-clause function binding by guarding the clause with
ifMutation, so the clause falls through (or hits a non-exhaustive MatchFail)
when active.

Model operators as a sum of kinds: MutationOperator carries the shared name
and description plus an operatorKind that is either an ExpressionOperator
(the original LHsExpr operators) or a FunctionDeclarationOperator (operating
on a binding's MatchGroup). RemoveClause lives in its own auto-discovered
module and is enabled/disabled uniformly via the registry.