I want to add a `predefined_query_handler` to serve a single JSON from my query.
For example

```xml
<rule>
      <url>/my/url</url>
      <methods>GET</methods>
      <handler>
        <type>predefined_query_handler</type>
        <query>select '{"my": "json"}' format JSONAsString</query>
      </handler>
    </rule>
```

I can use `RawBLOB` but it sets up Content-Type 'text/plain' instead of 'application/json'.
I think JSONAsString should also work with output.

append_callback([&used_output] (const Progress & progress) { used_output.out->onProgress(progress); });
    if (settings.readonly > 0 && settings.cancel_http_readonly_queries_on_client_close)
    {
        append_callback([&context, &request](const Progress &)
        {
            
            
            if (!request.checkPeerConnected())
                context->killCurrentQuery();
        });
    }
    customizeContext(request, context);
    executeQuery(*in, *used_output.out_maybe_delayed_and_compressed,  false, context,
        [&response] (const String & current_query_id, const String & content_type, const String & format, const String & timezone)
        {
            response.setContentType(content_type);
            response.add("X-ClickHouse-Query-Id", current_query_id);
            response.add("X-ClickHouse-Format", format);
            response.add("X-ClickHouse-Timezone", timezone);
        }
    );
    if (used_output.hasDelayed())
    {
        
        pushDelayedResults(used_output);
    }
    
    used_output.finalize();
}
void HTTPHandler::trySendExceptionToClient(