1c587b7f

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

Mutation: add SwitchFunctionArguments operator

Add a SwitchFunctionArguments mutation operator that, at a prefix function
or constructor application, swaps every pair of value arguments that have
the same type. The same-type precondition keeps each swapped application
well-typed.

To keep the output honest the operator:
  * fires only on the maximal application spine (via instrumentEnvAppDepth),
    so a curried sub-application does not re-emit a swap the full spine
    already covers;
  * skips pairs whose arguments have identical source text (the swap would
    be a no-op and the mutant unkillable).

Rendering uses a new SwapSpans source delta plus a pure, unit-tested
applySwapSpans renderer.

Adds an Example.SwitchArgsLib example and gen spec that kill all the swap
mutants, and disables the operator on the symmetric majorityOf5Wrapper
(whose swaps are equivalent mutants). Goldens regenerated; plugin bumped to
0.4.0.0.