**Use case**

For creating external data dictionary with settings (url, headers, etc.) from config.xml `<named_collections>`  for HTTP sources.
This is to allow updating per environment test, staging, prod without updating `CREATE DICTIONARY` statement, values set externally.

**Describe the solution you'd like**

Add HTTP source options as currently available for PostgreSQL, MySQL, S3 and Kafka:
https://clickhouse.com/docs/en/operations/named-collections/
keys should be `url`, `user`,`password`, `headers`.

**Describe alternatives you've considered**

use different data source for named collections.
use custom settings.

cc: @kssenii 

const DictionaryStructure & dict_struct_,
    const Configuration & configuration_,
    const Poco::Net::HTTPBasicCredentials & credentials_,
    Block & sample_block_,
    ContextPtr context_,
    bool created_from_ddl)
    : log(&Poco::Logger::get("HTTPDictionarySource"))
    , update_time(std::chrono::system_clock::from_time_t(0))
    , dict_struct(dict_struct_)
    , configuration(configuration_)
    , sample_block(sample_block_)
    , context(context_)
    , timeouts(ConnectionTimeouts::getHTTPTimeouts(context))
{
    if (created_from_ddl)
        context->getRemoteHostFilter().checkURL(Poco::URI(configuration.url));
    credentials.setUsername(credentials_.getUsername());
    credentials.setPassword(credentials_.getPassword());
}
HTTPDictionarySource::HTTPDictionarySource(const HTTPDictionarySource & other)