Extract message system to plugin (for 4.1)

This pull request extracts the existing foodsoft user messaging functionality to a plugin (engine), which is enabled by default. There should be no visible changes in the interface or functionality.