since the generalized gamma version needs the unmodified output of the
function (and therefore ignore zero_params), we need a way to specify
the zero_params on a per-modifier basis
this was solved by implementing the previous mod_params function as a
class ParamMod, which takes the same arguments, except the module, in
its init
param_modifiers can now be specified as instances of ParamMod, where
zero_params etc. may be supplied
this also makes passing mod_params-keyword-arguments to BasicHook
obsolete, as these are now stored in the param_modifiers themselves
passing simple functions (or callables) in param_modifiers is still
okay, the function will then be used to instantiate a ParamMod
object with the default parameters
all param_modifiers in zennit.rules are now replaced with ParamMod
instances, and ParamMod subclasses are implemented for the common
ClampMod, GammaMod and NoMod
tests now do not need to check for the param_keys in BasicHook
anymore, as this is done by comparing the ParamMod instances
updated and extended the gamma rule docstring
added zero_params to docstrings in composites and rules
updated docstrings for BasicHook
added and modified tests for ParamMod
added paragraph and code on ParamMod in how-to/write-custom-rules
zero_params
etc. may be supplied