Initial pass at an UnreadStatusManager.

Needs to allow configuring of the colours, and provide events
for notifying the UI.