### Elasticsearch Version

main @ 1266718e1cdef07a8c7cd1a463707825fabf7277

### Installed Plugins

_No response_

### Java Version

openjdk 17.0.8 2023-07-18

### OS Version

Ubuntu 23.;04

### Problem Description

`DISSECT`'s option `append_separator` is not case insensitive in contrast to all other ESQL keywords.

### Steps to Reproduce

This query works:
```
POST _query?format=txt
{
  "query": """
ROW a = "john jacob jingleheimer schmidt"
| DISSECT a "%{+name} %{+name} %{+name} %{+name}" append_separator="---"
  """
}
```
The identical query with upper cased `APPEND_SEPARATOR` does not:
```
POST _query?format=txt
{
  "query": """
ROW a = "john jacob jingleheimer schmidt"
| DISSECT a "%{+name} %{+name} %{+name} %{+name}" APPEND_SEPARATOR="---"
  """
}
```
It fails with `Invalid option for dissect: [APPEND_SEPARATOR]`.

### Logs (if relevant)

_No response_
x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/LogicalPlanBuilder.java
public LogicalPlan visitCompositeQuery(EsqlBaseParser.CompositeQueryContext ctx) {
        LogicalPlan input = plan(ctx.query());
        PlanFactory makePlan = typedParsing(this, ctx.processingCommand(), PlanFactory.class);
        return makePlan.apply(input);
    }
    @Override
    public PlanFactory visitEvalCommand(EsqlBaseParser.EvalCommandContext ctx) {
        return p -> new Eval(source(ctx), p, visitFields(ctx.fields()));
    }
    @Override
    public PlanFactory visitGrokCommand(EsqlBaseParser.GrokCommandContext ctx) {
        return p -> {
            String pattern = visitString(ctx.string()).fold().toString();
            Grok result = new Grok(source(ctx), p, expression(ctx.primaryExpression()), Grok.pattern(source(ctx), pattern));
            return result;
        };
    }
    @Override
    public PlanFactory visitDissectCommand(EsqlBaseParser.DissectCommandContext ctx) {
        return p -> {
            String pattern = visitString(ctx.string()).fold().toString();
            Map<String, Object> options = visitCommandOptions(ctx.commandOptions());
            String appendSeparator = "";
            for (Map.Entry<String, Object> item : options.entrySet()) {
                if (item.getKey().equals("append_separator") == false) {
                    throw new ParsingException(source(ctx), "Invalid option for dissect: [{}]", item.getKey());
                }
                if (item.getValue() instanceof String == false) {
                    throw new ParsingException(
                        source(ctx),