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.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 1m42s 7s 7s 1m49s 1m42s
Eval 3m45s 2m04s 2m04s 5m50s 1m56s
Build - - - - 2h07m26s
Suite 1m42s 2m11s - - 2h11m04s