**Use case**
ClickHouse as a web server becomes a viable scenario.
(At least in backoffice).

**Describe the solution you'd like**
Add this field.

**Additional context**
It's in question how to name it. The original HTTP specs has the famous typo in it and name it `referer`. While JavaScript has this typo fixed and name it `referrer`.

{
    return {
        {std::make_shared<DataTypeDate>(),          "event_date"},
        {std::make_shared<DataTypeDateTime>(),      "event_time"},
        {std::make_shared<DataTypeDateTime64>(6),   "event_time_microseconds"},
        {std::make_shared<DataTypeDateTime>(),      "query_start_time"},
        {std::make_shared<DataTypeDateTime64>(6),   "query_start_time_microseconds"},
        {std::make_shared<DataTypeUInt64>(),        "query_duration_ms"},
        {std::make_shared<DataTypeUInt64>(),        "read_rows"},
        {std::make_shared<DataTypeUInt64>(),        "read_bytes"},
        {std::make_shared<DataTypeUInt64>(),        "written_rows"},
        {std::make_shared<DataTypeUInt64>(),        "written_bytes"},
        {std::make_shared<DataTypeInt64>(),         "memory_usage"},
        {std::make_shared<DataTypeInt64>(),         "peak_memory_usage"},
        {std::make_shared<DataTypeString>(),        "thread_name"},
        {std::make_shared<DataTypeUInt64>(),        "thread_id"},
        {std::make_shared<DataTypeUInt64>(),        "master_thread_id"},
        {std::make_shared<DataTypeString>(),        "current_database"},
        {std::make_shared<DataTypeString>(),        "query"},
        {std::make_shared<DataTypeUInt64>(),        "normalized_query_hash"},
        {std::make_shared<DataTypeUInt8>(),         "is_initial_query"},
        {std::make_shared<DataTypeString>(),        "user"},
        {std::make_shared<DataTypeString>(),        "query_id"},