ENH: filter.d/squirrelmail added
BF: Ensure all imports for fail2ban modules are not relative
BF: fix infinite recursion case in Action.substituteRecursiveTags
ENH: add substition tags to filter definitions. Closes gh-539
DOC: document addition of filter options substitution into failregex/ignoreregex
ENH: Python based actions

Python actions are imported from action.d config folder, which have .py
file extension. This imports and creates an instance of the Action class
(Action can be a variable that points to a class of another name).
fail2ban.server.action.ActionBase is a base class which can be inherited
from or as a minimum has a subclass hook which is used to ensure any
imported actions implements the methods required.
All calls to the execAction are also wrapped in a try except such that
any errors won't cripple the jail.
Action is renamed CommandAction, to clearly distinguish it from other
actions.

Include is an example smtp.py python action for sending emails via smtp.
This is work in progress, as looking to add the <matches> and whois
elements, and also SSL/TLS support.
TST: test case for honeypot exim-spam
TST: log files to cinlude only the #541 test case
ENH: exim-spam to take honeypot email address as argument. Closes #541
DOC: doco for exim-spam
ENH: Add matches to smtp.py action
ENH: fix fail2ban-regex for filter arguement substition
ENH: python actions use initOpts as **kwargs

Adds an easy way to handle case where mandatory arguments are missed, or
not valid arguments are passed
TST: Add non-callable values to CallableMap test
BF: Incorrect number of arguments in smtp.py action connect log
MRG: from python-actions
correct overprune on imports to filterreader.py
TST: test case for horde
ENH: filter for horde
Merge pull request #550 from grooverdan/horde

ENH: Horde filter