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.

{
    auto compiled_regex = std::make_shared<const re2::RE2>(expression);
    if (!compiled_regex->ok())
        throw Exception(
            "Cannot compile re2: " + expression + " for http handling rule, error: " + compiled_regex->error()
                + ". Look at https://github.com/google/re2/wiki/Syntax for reference.",
            ErrorCodes::CANNOT_COMPILE_REGEXP);
    return compiled_regex;
}
HTTPRequestHandlerFactoryPtr createPredefinedHandlerFactory(IServer & server, const std::string & config_prefix)
{
    Poco::Util::AbstractConfiguration & configuration = server.config();
    if (!configuration.has(config_prefix + ".handler.query"))
        throw Exception("There is no path '" + config_prefix + ".handler.query' in configuration file.", ErrorCodes::NO_ELEMENTS_IN_CONFIG);
    std::string predefined_query = configuration.getString(config_prefix + ".handler.query");
    NameSet analyze_receive_params = analyzeReceiveQueryParams(predefined_query);
    std::unordered_map<String, CompiledRegexPtr> headers_name_with_regex;
    Poco::Util::AbstractConfiguration::Keys headers_name;
    configuration.keys(config_prefix + ".headers", headers_name);
    for (const auto & header_name : headers_name)
    {
        auto expression = configuration.getString(config_prefix + ".headers." + header_name);
        if (!startsWith(expression, "regex:"))
            continue;
        expression = expression.substr(6);