### Description

A query like `from employees | where true` is perfectly valid. So is `from employees | where still_hired`. In other words, a simple boolean expression is accepted, even if that expression is a field. For fields `where [field_name]` is the short version of `where [field_name] == true`.

But, for fields that are not booleans `from employees | where salary` for example, ESQL throws an exception:

```
                "type": "class_cast_exception",
                "reason": "class org.elasticsearch.compute.data.IntVectorBlock cannot be cast to class org.elasticsearch.compute.data.BooleanBlock (org.elasticsearch.compute.data.IntVectorBlock and org.elasticsearch.compute.data.BooleanBlock are in unnamed module of loader java.net.FactoryURLClassLoader @c6a692e)"
```

The error message should be more user-friendly, like validating the parameters of regular functions.
x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/analysis/Verifier.java
failures.add(f);
                }
            });
            p.forEachExpression(Neg.class, neg -> {
                Failure f = validateUnsignedLongNegation(neg);
                if (f != null) {
                    failures.add(f);
                }
            });
        });
        
        if (failures.isEmpty()) {
            gatherMetrics(plan);
        }
        return failures;
    }
    private void gatherMetrics(LogicalPlan plan) {
        BitSet b = new BitSet(FeatureMetric.values().length);
        plan.forEachDown(p -> {
            if (p instanceof Dissect) {
                b.set(DISSECT.ordinal());
            } else if (p instanceof Eval) {
                b.set(EVAL.ordinal());
            } else if (p instanceof Grok) {
                b.set(GROK.ordinal());
            } else if (p instanceof Limit) {
                b.set(LIMIT.ordinal());
            } else if (p instanceof OrderBy) {
                b.set(SORT.ordinal());
            } else if (p instanceof Aggregate) {