Rename and restructure plugins into keyword-handlers
Rename and restructure plugins into keyword-handlers.
- A keyword handler is now implemented as an instanciable class that actively registers its keywords.
- Custom keyword handlers are looked for in /usr/local/lib/schleuder/keyword_handlers (for better compliance with the Linux Filesystem Hierarchy Standard).
- Before running any keyword handler, the list of incoming keywords if checked for unknown keywords; if any unknown keyword is found, no keyword handler is executed but an error message is sent to the sender.
A few new aliases for keywords sneaked in:
- list-key → list-keys
- fetch-keys → fetch-key
- get-keys → get-key
- attach-list-key → attach-listkey
- resend-unenc → resend-unencrypted
- resend-cc-unenc → resend-cc-unencrypted
Depends on !224 (merged)
Would replace !198 (closed)
This also implements requiring X-STOP (if any other keyword is present). !224 (merged) only introduced the parsing part (syntax), while this deals with semantics.