[stream] share one ordered engine across /stream, /subscribe and subscribeRepos master
with positions assigned at commit, broadcasts arrive in position order and every unbroadcast row is announced by a later marker, so a subscriber only has to take broadcasts in order and read the db for a marker's rows. all three endpoints now run the same engine over a position type (event id, jetstream key, relay seq); each only says how to read its rows and render a live broadcast. the gap-guessing in the old engine and the separate jetstream loop are gone. a subscriber that lags the broadcast channel now catches up from the db instead of being disconnected. ConsumerTooSlow is only sent when the output stays full for the send timeout. /subscribe now broadcasts a historical marker after backfilled commits. subscribers that ask for wantedEventTypes=historical explicitly get backfills that finish while they're connected from the live tail. the default is unchanged: cursor replay returns both, the tail stays live, and default subscribers skip the marker reads entirely. a lagging subscriber's catch-up keeps the live filter: backfills committed past the head it connected at stay out of a default tail. a db read that fails ends the stream, and the subscriber resumes from its last event, instead of the replay counting as exhausted and skipping the rows after the failure.