Support exclude the message when reset cursor by message ID (#8306)

Fixes #8259
### Motivation
Currently, when reset the cursor to a position, the broker will set the mark delete position to the previous position of the reset position. For some usecase, we don't want to consume the reset position again, so it's better to provide a way to reset the cursor to a specific position and exclude this position. So that the consumers under the subscription can start consume messages from the next position of the reset position.

### Modifications
Add a new API to exclude the message when reset cursor by message ID

### Verifying this change
SimpleProducerConsumerTest#testResetPosition
9 files changed
tree: 8a1a73a2d6a1456ae152d91ff68cab1f09e6d6a8
  1. distribution/
  2. docker/
  3. tests/