This implements P2036R3 with the changes proposed by D2579R0 applied.
That is, explicit, int, and implicit capture become visible
at the start of the parameter head.
This approach is meant to address breakages observed in
https://reviews.llvm.org/D119136.
It is based on D119136 and D124012.
Most of the code is similar, except that Clang
will do a tentative parse action to try to find a mutable keyword
after the parameter list, and inject the explicit captures in the call
operator context before parsing the template parameter list.
If the code is not-well balanced, there is no degadation in diagnostics,
as we simply fallback to assuming the lambda is not mutable.
In lambda template parameters, naming a capture is still ill-formed.