**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(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) \
    M(473, DEADLOCK_AVOIDED) \
    M(474, INVALID_TEMPLATE_FORMAT) \
    M(475, INVALID_WITH_FILL_EXPRESSION) \
    M(476, WITH_TIES_WITHOUT_ORDER_BY) \
    M(477, INVALID_USAGE_OF_INPUT) \
    M(478, UNKNOWN_POLICY) \
    M(479, UNKNOWN_DISK) \
    M(480, UNKNOWN_PROTOCOL) \
    M(481, PATH_ACCESS_DENIED) \
    M(482, DICTIONARY_ACCESS_DENIED) \
    M(483, TOO_MANY_REDIRECTS) \
    M(484, INTERNAL_REDIS_ERROR) \
    M(485, SCALAR_ALREADY_EXISTS) \
    M(487, CANNOT_GET_CREATE_DICTIONARY_QUERY) \
    M(488, UNKNOWN_DICTIONARY) \
    M(489, INCORRECT_DICTIONARY_DEFINITION) \
    M(490, CANNOT_FORMAT_DATETIME) \
    M(491, UNACCEPTABLE_URL) \
    M(492, ACCESS_ENTITY_NOT_FOUND) \