Multiple filter function support for BPF filters

Signed-off-by: Nuno Martins <nuno.martins@caixamagica.pt>
PID-based packet filtering support

Signed-off-by: Nuno Martins <nuno.martins@caixamagica.pt>
first commit for multi pid repository

Signed-off-by: Nuno Martins <nuno.martins@caixamagica.pt>
Support for removing a filter_function from a sniffer

The support was added on the filter_function_struct with the exit_func
function pointer. This function will use the module_put to decrement the
module usage.
The attach_filter_function will use the try_module_get so that it
increments the module usage, so that the module can't be removed before
every instance that uses that module has exited.
Using this approach I hope I will end with the kernel panics when
unloading the module.

Signed-off-by: Nuno Martins <nuno.martins@caixamagica.pt>
Using the support for increment and decrement the module usage

Signed-off-by: Nuno Martins <nuno.martins@caixamagica.pt>
Modifications to use a "destructor" when removing a filter

Signed-off-by: Nuno Martins <nuno.martins@caixamagica.pt>