**Feature**

Allow creating empty dictionaries with DDL queries.

**Use case**

This feature will allow building queries and views referencing empty dictionary with `dictGet` or 'as a table', 
even if dictionary does not exist yet.

Maybe, empty dictionaries does not make sense in 'clickhouse as a part of internal infrastructure', this will 
feature may be useful in cases when clickhouse is used as a database for small application that configures
clickhouse automatically, and some dictionaries may be optional or provided by application  user.

**Describe the solution you'd like**

Provide mock source `SOURCE(EMPTY())` for dictionaries, such that every `dictGet` call will return `null_value`.

**Describe alternatives you've considered**

Make source section optional for dictionaries.

#include "DictionaryFactory.h"
#include "DictionarySourceFactory.h"
namespace DB
{
class DictionarySourceFactory;
void registerDictionarySourceFile(DictionarySourceFactory & source_factory);
void registerDictionarySourceMysql(DictionarySourceFactory & source_factory);
void registerDictionarySourceClickHouse(DictionarySourceFactory & source_factory);
void registerDictionarySourceMongoDB(DictionarySourceFactory & source_factory);
void registerDictionarySourceCassandra(DictionarySourceFactory & source_factory);
void registerDictionarySourceRedis(DictionarySourceFactory & source_factory);
void registerDictionarySourceXDBC(DictionarySourceFactory & source_factory);
void registerDictionarySourceJDBC(DictionarySourceFactory & source_factory);
void registerDictionarySourcePostgreSQL(DictionarySourceFactory & source_factory);
void registerDictionarySourceExecutable(DictionarySourceFactory & source_factory);
void registerDictionarySourceExecutablePool(DictionarySourceFactory & source_factory);
void registerDictionarySourceHTTP(DictionarySourceFactory & source_factory);
void registerDictionarySourceLibrary(DictionarySourceFactory & source_factory);
class DictionaryFactory;
void registerDictionaryRangeHashed(DictionaryFactory & factory);
void registerDictionaryComplexKeyHashed(DictionaryFactory & factory);
void registerDictionaryTrie(DictionaryFactory & factory);
void registerDictionaryFlat(DictionaryFactory & factory);
void registerDictionaryHashed(DictionaryFactory & factory);
void registerDictionaryArrayHashed(DictionaryFactory & factory);
void registerDictionaryCache(DictionaryFactory & factory);
void registerDictionaryPolygon(DictionaryFactory & factory);
void registerDictionaryDirect(DictionaryFactory & factory);
void registerDictionaries()
{