**Describe the solution you'd like**

We already can run clickhouse-server without configured ZooKeeper (the tables will start in read-only mode)
and with configured ZooKeeper, if it starts to be inaccessible at runtime (the tables will be read-only until the session is re-established).

Let's also make it possible to start up when ZooKeeper is unavailable.

**Additional context**

If that will be very hard to implement, we can consider other options:
- lazy attaching of the tables after sever start-up;
- a maintenance mode when the tables are not attached at start-up and require manual ATTACH queries.
M(443, NO_COLUMNS_SERIALIZED_TO_PROTOBUF_FIELDS) \
    M(444, UNKNOWN_PROTOBUF_FORMAT) \
    M(445, CANNOT_MPROTECT) \
    M(446, FUNCTION_NOT_ALLOWED) \
    M(447, HYPERSCAN_CANNOT_SCAN_TEXT) \
    M(448, BROTLI_READ_FAILED) \
    M(449, BROTLI_WRITE_FAILED) \
    M(450, BAD_TTL_EXPRESSION) \
    M(451, BAD_TTL_FILE) \
    M(452, SETTING_CONSTRAINT_VIOLATION) \
    M(453, MYSQL_CLIENT_INSUFFICIENT_CAPABILITIES) \
    M(454, OPENSSL_ERROR) \
    M(455, SUSPICIOUS_TYPE_FOR_LOW_CARDINALITY) \
    M(456, UNKNOWN_QUERY_PARAMETER) \
    M(457, BAD_QUERY_PARAMETER) \
    M(458, CANNOT_UNLINK) \
    M(459, CANNOT_SET_THREAD_PRIORITY) \
    M(460, CANNOT_CREATE_TIMER) \
    M(461, CANNOT_SET_TIMER_PERIOD) \
    M(462, CANNOT_DELETE_TIMER) \
    M(463, CANNOT_FCNTL) \
    M(464, CANNOT_PARSE_ELF) \
    M(465, CANNOT_PARSE_DWARF) \
    M(466, INSECURE_PATH) \
    M(467, CANNOT_PARSE_BOOL) \
    M(468, CANNOT_PTHREAD_ATTR) \
    M(469, VIOLATED_CONSTRAINT) \
    M(470, QUERY_IS_NOT_SUPPORTED_IN_LIVE_VIEW) \
    M(471, INVALID_SETTING_VALUE) \
    M(472, READONLY_SETTING) \