Add support for plugins
Problem to solve
Support a generic plugin mechanism to extend the functionality of Amavis.
User experience goal
The user can load and configure plugins, both bundled and external ones, similar to the ones used in SpamAssassin.
Proposal
Add a plugin loader and executor.
The loader should only require explicitly mentioned plugins.
It should support some simple ordering of plugins.
Add a mechanism to extend the config for plugins. I don't know yet how this would work.
In the end it should replace the existing custom module. Also maybe will be expressive enough to allow the implementation of spam and virus filtering extracted into a plugin.
Further details
The existing Module::Pluggable module does neither support ordering, nor does it support only explicit loaded plugins.
Does implementation exist that we can use?