**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(596, INTERSECT_OR_EXCEPT_RESULT_STRUCTURES_MISMATCH) \
    M(597, NO_SUCH_ERROR_CODE) \
    M(598, BACKUP_ALREADY_EXISTS) \
    M(599, BACKUP_NOT_FOUND) \
    M(600, BACKUP_VERSION_NOT_SUPPORTED) \
    M(601, BACKUP_DAMAGED) \
    M(602, NO_BASE_BACKUP) \
    M(603, WRONG_BASE_BACKUP) \
    M(604, BACKUP_ENTRY_ALREADY_EXISTS) \
    M(605, BACKUP_ENTRY_NOT_FOUND) \
    M(606, BACKUP_IS_EMPTY) \
    M(607, CANNOT_RESTORE_DATABASE) \
    M(608, CANNOT_RESTORE_TABLE) \
    M(609, FUNCTION_ALREADY_EXISTS) \
    M(610, CANNOT_DROP_FUNCTION) \
    M(611, CANNOT_CREATE_RECURSIVE_FUNCTION) \
    M(612, OBJECT_ALREADY_STORED_ON_DISK) \
    M(613, OBJECT_WAS_NOT_STORED_ON_DISK) \
    M(614, POSTGRESQL_CONNECTION_FAILURE) \
    M(615, CANNOT_ADVISE) \
    M(616, UNKNOWN_READ_METHOD) \
    M(617, LZ4_ENCODER_FAILED) \
    M(618, LZ4_DECODER_FAILED) \
    M(619, POSTGRESQL_REPLICATION_INTERNAL_ERROR) \
    M(620, QUERY_NOT_ALLOWED) \
    M(621, CANNOT_NORMALIZE_STRING) \
    M(622, CANNOT_PARSE_CAPN_PROTO_SCHEMA) \
    M(623, CAPN_PROTO_BAD_CAST) \
    M(624, BAD_FILE_TYPE) \
    M(625, IO_SETUP_ERROR) \