Add a flag to automatically protect filters from being called recursively by their own module.
A filter handle is returned and can be used to unregister a filter. In the future it can also be used to further configure or manipulate the filter. Filters are now automatically unregistered when a module unloads.