markContactUnread
Marks contact unread by flipping its newest message back to unread and rewinding the read watermark past it. Both writes are needed: the badge counts read = 0 packets, while the watermark is what the message screen compares against when it later clears the conversation.