### Elasticsearch Version

8.7.0

### Problem Description

If a search template changes the default mustache delimiter using `{{=`, rendering the template will fail with a `MustacheException`, `Disallowed: changing defaul delimiters`.



### Steps to Reproduce

```
PUT _scripts/test_search_template
{
  "script": {
    "lang": "mustache",
    "source": """
    {
      "query": {
        "match": {
          "content": "{{query_string}}"
        }
      },
      "highlight": {
        {{=<% %>=}}
        "pre_tags": [
          "{{{{"
        ],
        "post_tags": [
          "}}}}"
        ],
        <%={{ }}=%>
        "fields": {
          "content": {},
          "title": {}
        }
      }
    }
    """
  }
}
```

```
POST _render/template
{
  "id": "test_search_template",
  "params": {
    "query_string": "test"
  }
}
```

Result:
```
{
  "error": {
    "root_cause": [
      {
        "type": "script_exception",
        "reason": "Disallowed: changing defaul delimiters",
        "script_stack": [],
        "script": """
    {
      "query": {
        "match": {
          "content": "{{query_string}}"
        }
      },
      "highlight": {
        {{=<% %>=}}
        "pre_tags": [
          "{{{{"
        ],
        "post_tags": [
          "}}}}"
        ],
        <%={{ }}=%>
        "fields": {
          "content": {},
          "title": {}
        }
      }
    }
    """,
        "lang": "mustache"
      }
    ],
    "type": "script_exception",
    "reason": "Disallowed: changing defaul delimiters",
    "script_stack": [],
    "script": """
    {
      "query": {
        "match": {
          "content": "{{query_string}}"
        }
      },
      "highlight": {
        {{=<% %>=}}
        "pre_tags": [
          "{{{{"
        ],
        "post_tags": [
          "}}}}"
        ],
        <%={{ }}=%>
        "fields": {
          "content": {},
          "title": {}
        }
      }
    }
    """,
    "lang": "mustache",
    "caused_by": {
      "type": "mustache_exception",
      "reason": "Disallowed: changing defaul delimiters"
    }
  },
  "status": 400
}
```

This was changed when switching to `SafeMustacheFactory` in https://github.com/elastic/elasticsearch/pull/92211 which sets [`allowChangingDelimeters`](https://github.com/spullara/mustache.java/blob/c17bb110161848e444576e93170a2a696770e9d3/compiler/src/main/java/com/github/mustachejava/SafeMustacheFactory.java#L82) to `false`.
modules/lang-mustache/src/test/java/org/elasticsearch/script/mustache/MustacheScriptEngineTests.java
}""", o);
        }
    }
    public void testSimple() throws IOException {
        String templateString = """
            {"source":{"match_{{template}}": {}},"params":{"template":"all"}}""";
        XContentParser parser = createParser(JsonXContent.jsonXContent, templateString);
        Script script = Script.parse(parser);
        TemplateScript.Factory compiled = qe.compile(null, script.getIdOrCode(), TemplateScript.CONTEXT, Map.of());
        TemplateScript TemplateScript = compiled.newInstance(script.getParams());
        assertThat(TemplateScript.execute(), equalTo("{\"match_all\":{}}"));
    }
    public void testParseTemplateAsSingleStringWithConditionalClause() throws IOException {
        String templateString = """
            {
              "source": "{ \\"match_{{#use_it}}{{template}}{{/use_it}}\\":{} }",
              "params": {
                "template": "all",
                "use_it": true
              }
            }""";
        XContentParser parser = createParser(JsonXContent.jsonXContent, templateString);
        Script script = Script.parse(parser);
        TemplateScript.Factory compiled = qe.compile(null, script.getIdOrCode(), TemplateScript.CONTEXT, Map.of());
        TemplateScript TemplateScript = compiled.newInstance(script.getParams());
        assertThat(TemplateScript.execute(), equalTo("{ \"match_all\":{} }"));
    }
    private static class TestReflection {
        private final int privateField = 1;
        public final int publicField = 2;