Write a file `uuid` in server's data directory that contains random UUID, generated at startup if file does not exist.

It will be used for several purposes:
- to anonymously identify server in Sentry (currently Sentry is unusable);
- (possible future usage) to identify server in ensemble.

@tavplubix comments?
global_context->setInterserverIOAddress(this_host, port);
            global_context->setInterserverScheme(scheme);
        }
    }
    LOG_DEBUG(log, "Initiailizing interserver credentials.");
    global_context->updateInterserverCredentials(config());
    if (config().has("macros"))
        global_context->setMacros(std::make_unique<Macros>(config(), "macros", log));
    
    std::string include_from_path = config().getString("include_from", "/etc/metrika.xml");
    if (config().has("query_masking_rules"))
    {
        SensitiveDataMasker::setInstance(std::make_unique<SensitiveDataMasker>(config(), "query_masking_rules"));
    }
    auto main_config_reloader = std::make_unique<ConfigReloader>(
        config_path,
        include_from_path,
        config().getString("path", ""),
        std::move(main_config_zk_node_cache),
        main_config_zk_changed_event,
        [&](ConfigurationPtr config, bool initial_loading)
        {
            Settings::checkNoSettingNamesAtTopLevel(*config, config_path);
            
            size_t max_server_memory_usage = config->getUInt64("max_server_memory_usage", 0);
            double max_server_memory_usage_to_ram_ratio = config->getDouble("max_server_memory_usage_to_ram_ratio", 0.9);
            size_t default_max_server_memory_usage = memory_amount * max_server_memory_usage_to_ram_ratio;
            if (max_server_memory_usage == 0)
            {
                max_server_memory_usage = default_max_server_memory_usage;