Refresh ChatMessage class to be recursive

Split 1.6 and 1.7 implementation in chat plugin
Introduce new bot event, 'message'.