Add plugins as a map to iterate
Loop over plugins from the hash for a new message

Given a map of plugins, we then loop over them and use the key to see if they match or not, calling them if they do
Migrate all existing plugins to functions in the hash
Code format properly
Merge branch 'plugin-dispatcher'