Store notification records with the PDU id and rebuild notification events
when reading them back. This makes the notifications endpoint respect event
visibility, ignored events, and bundled aggregations again.
Also update the last notification read marker for fully-read, public read,
and private read receipts, and remove the old public receipt count lookup.