!per #3704 Persistence improvement (part 1)

Subtask #3776 - Live read models (done):

- View trait supporting with automated or on demand updates
- Updates (incremental message replays) can be size-limited
- Includes all feedback discussed in pull request #1905

Subtask #3804 - Batch-oriented journal plugin API (fully implemented):

- batch-write of confirmations
- batch-write of deletions markers
- batch deletes (permanent)

Subtask #3773 - Channel enhancements (partly implemented):

- more efficient bookkeeping during delivery and redelivery
- redesign of confirmation messages and infrastructure
- Pager trait to support paged replays (not used yet by PersistentChannel)

  Open (transient channel):

- actual batching of delivery confirmations

  Open (parsistent channel):

- actual batching of deletions
- separation of writes from delivery
- paged replay during redelivery
- paged replay with high/low watermark of outstanding confirmations

Subtask #3803 - Recovery optimization for persistent channels (work started):

- Pager that can maintain checkoints as shown in PagerSpec

  Open:

- Checkpoints for writer
- Checkpoints for concrete pager implemented by persistent channel

Main refactorings:

- Recovery trait
- Snapshotter trait