Initial pass at an UnreadStatusManager.

Needs to allow configuring of the colours, and provide events
for notifying the UI.
Merge remote-tracking branch 'origin/master'
Merge pull request #304 from csmith/master

Initial pass at an UnreadStatusManager.