### 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
/**
     * Limit QL's comparisons to types we support.
     */
    public static Failure validateBinaryComparison(BinaryComparison bc) {
        if (bc.left().dataType().isNumeric()) {
            if (false == bc.right().dataType().isNumeric()) {
                return fail(
                    bc,
                    "first argument of [{}] is [numeric] so second argument must also be [numeric] but was [{}]",
                    bc.sourceText(),
                    bc.right().dataType().typeName()
                );
            }
            return null;
        }
        List<DataType> allowed = new ArrayList<>();
        allowed.add(DataTypes.KEYWORD);
        allowed.add(DataTypes.TEXT);
        allowed.add(DataTypes.IP);
        allowed.add(DataTypes.DATETIME);
        allowed.add(DataTypes.VERSION);
        if (bc instanceof Equals || bc instanceof NotEquals) {
            allowed.add(DataTypes.BOOLEAN);
        }
        Expression.TypeResolution r = TypeResolutions.isType(
            bc.left(),
            allowed::contains,
            bc.sourceText(),
            FIRST,
            Stream.concat(Stream.of("numeric"), allowed.stream().map(DataType::typeName)).toArray(String[]::new)