**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(11, POSITION_OUT_OF_BOUND) \
    M(12, PARAMETER_OUT_OF_BOUND) \
    M(13, SIZES_OF_COLUMNS_IN_TUPLE_DOESNT_MATCH) \
    M(15, DUPLICATE_COLUMN) \
    M(16, NO_SUCH_COLUMN_IN_TABLE) \
    M(17, DELIMITER_IN_STRING_LITERAL_DOESNT_MATCH) \
    M(18, CANNOT_INSERT_ELEMENT_INTO_CONSTANT_COLUMN) \
    M(19, SIZE_OF_FIXED_STRING_DOESNT_MATCH) \
    M(20, NUMBER_OF_COLUMNS_DOESNT_MATCH) \
    M(21, CANNOT_READ_ALL_DATA_FROM_TAB_SEPARATED_INPUT) \
    M(22, CANNOT_PARSE_ALL_VALUE_FROM_TAB_SEPARATED_INPUT) \
    M(23, CANNOT_READ_FROM_ISTREAM) \
    M(24, CANNOT_WRITE_TO_OSTREAM) \
    M(25, CANNOT_PARSE_ESCAPE_SEQUENCE) \
    M(26, CANNOT_PARSE_QUOTED_STRING) \
    M(27, CANNOT_PARSE_INPUT_ASSERTION_FAILED) \
    M(28, CANNOT_PRINT_FLOAT_OR_DOUBLE_NUMBER) \
    M(29, CANNOT_PRINT_INTEGER) \
    M(30, CANNOT_READ_SIZE_OF_COMPRESSED_CHUNK) \
    M(31, CANNOT_READ_COMPRESSED_CHUNK) \
    M(32, ATTEMPT_TO_READ_AFTER_EOF) \
    M(33, CANNOT_READ_ALL_DATA) \
    M(34, TOO_MANY_ARGUMENTS_FOR_FUNCTION) \
    M(35, TOO_FEW_ARGUMENTS_FOR_FUNCTION) \
    M(36, BAD_ARGUMENTS) \
    M(37, UNKNOWN_ELEMENT_IN_AST) \
    M(38, CANNOT_PARSE_DATE) \
    M(39, TOO_LARGE_SIZE_COMPRESSED) \
    M(40, CHECKSUM_DOESNT_MATCH) \
    M(41, CANNOT_PARSE_DATETIME) \