AbuseFilterParser supports the following empty operators, whereas the CachingParser does not:
- `(foo|)` is equivalent to `foo`
- `(foo&)` is equivalent to `false`
- `(foo&!)` is equivalent to `foo`
- `(!)` is equivalent to `true`
- `if ( cond ) then () ...`
- `if ( cond ) then ( ... ) else () end`
and possibly others for other kind of operations.
In all cases, the missing argument of a boolean operator is treated as `null`.
With this fact, people could inadvertently break filters if they leave a leading operator, so we should really stop allowing it. We should first emit debug notices, then fix filters for WMF prod, and then drop support.