**Describe the unexpected behaviour**
OFFSET can work without ORDER BY , but OFFSET FETCH cannot work without ORDER BY, and throw strange syntax error: `failed at 'FETCH' Expected FETCH`.

**How to reproduce**
* Clickhouse Version: `21.10.2.15`
* `CREATE TABLE test_fetch (a INT, b INT) ENGINE=MergeTree ORDER BY b;`
* `INSERT INTO test_fetch VALUES (1, 1), (2, 1), (3, 4), (1, 4), (5, 4), (0, 6), (5, 7);`
* `OFFSET` without `ORDER BY` works: `SELECT * FROM test_fetch OFFSET 3 ROW;`
* `OFFSET FETCH` with `ORDER BY` works: `SELECT * FROM test_fetch ORDER BY a OFFSET 3 ROWS FETCH FIRST 3 ROWS ONLY;`
* `OFFSET FETCH` without `ORDER BY`  does ***NOT*** work: `SELECT * FROM test_fetch OFFSET 3 ROWS FETCH FIRST 3 ROWS ONLY;`

**Expected behavior**
Same behavior or correct error message.

**Error message and/or stacktrace**
![OFFSET-FETCH](https://user-images.githubusercontent.com/3500109/139619530-04433404-73ed-4fc6-a76a-68cb65a5bb31.png)


M(154, AGGREGATE_FUNCTION_NOT_APPLICABLE) \
    M(155, UNKNOWN_RELATION) \
    M(156, DICTIONARIES_WAS_NOT_LOADED) \
    M(157, ILLEGAL_OVERFLOW_MODE) \
    M(158, TOO_MANY_ROWS) \
    M(159, TIMEOUT_EXCEEDED) \
    M(160, TOO_SLOW) \
    M(161, TOO_MANY_COLUMNS) \
    M(162, TOO_DEEP_SUBQUERIES) \
    M(163, TOO_DEEP_PIPELINE) \
    M(164, READONLY) \
    M(165, TOO_MANY_TEMPORARY_COLUMNS) \
    M(166, TOO_MANY_TEMPORARY_NON_CONST_COLUMNS) \
    M(167, TOO_DEEP_AST) \
    M(168, TOO_BIG_AST) \
    M(169, BAD_TYPE_OF_FIELD) \
    M(170, BAD_GET) \
    M(172, CANNOT_CREATE_DIRECTORY) \
    M(173, CANNOT_ALLOCATE_MEMORY) \
    M(174, CYCLIC_ALIASES) \
    M(176, CHUNK_NOT_FOUND) \
    M(177, DUPLICATE_CHUNK_NAME) \
    M(178, MULTIPLE_ALIASES_FOR_EXPRESSION) \
    M(179, MULTIPLE_EXPRESSIONS_FOR_ALIAS) \
    M(180, THERE_IS_NO_PROFILE) \
    M(181, ILLEGAL_FINAL) \
    M(182, ILLEGAL_PREWHERE) \
    M(183, UNEXPECTED_EXPRESSION) \
    M(184, ILLEGAL_AGGREGATION) \
    M(185, UNSUPPORTED_MYISAM_BLOCK_TYPE) \