gh-42 Reworked how message is instantiated and used.

Changed part of the plugin api to call plugins with:

``` func(msg, param, **kwargs) ```