Move unread message notifications to a plugin

In our Candy app we have some business rules that need to be applied to determine the number of unread messages.  Part of it is the ability to check whether a message has been read on another device so we don't show activity indicators on login for something the user has already seen.  To make this work, we need to be able to determine whether to show an activity indicator in a plugin, rather than in Candy core.  This PR creates a new event, `candy:view.message.notify` that contains information relevant to whether and how a message should create notifications.