jetstream: extract reusable consumer into internal/jetstream
The consumer code in jetstream.go mixed Tack-specific concerns
(collections, applyCommit, store cursor) with generic firehose
mechanics: configuring the upstream client, looping reconnects,
rewinding time-based cursors, persisting cursor progress, and
distinguishing permanent bad-record failures from transient
handler failures. None of those are specific to Tack and they are
the bits most likely to be reused for future jetstream consumers.
Move the generic mechanics into a new internal/jetstream package.
authored by