McMMOChatEvent: added a field to hold the dispatching plugin

Currently, there is no sane way to detect which plugin dispatched
an McMMOChatEvent. This is problematic for plugins using the ChatAPI
while also listening for McMMOChatEvents as it leads to a message loop
being created.

A "simple" solution is to store a reference to the dispatching plugin in
the McMMOChatEvent. This allows for a plugin to determine if it is an
event dispatched by itself, or some other plugin. In addition, this can
allow for better control within third party plugins to determine where
McMMOChatEvents are dispatched from.

This patch is backwards with existing existing interfaces.