Expire lapsed payments (kessai.expired and a cron reaper)
Merge request for #3611872.
Adds STATE_EXPIRED + PaymentEvents::EXPIRED, an expires deadline stamped by create() (ttl seconds, config default), expire()/expireDue() (row-locked), a #[Hook('cron')] reaper, and a (state, expires) index. Kernel-tested.