Generic filters2

I think I hit on the major points and recommendations I've gotten (but yell at me if I forgot any!). I changed it so that the filtering is done updating the original dict as much as possible and I made it clear in the documentation that that's the idea. I added back in the _done_check() method's functionality that I previously removed. I also wrote a couple tests.

So this is probably (at least from my perspective) pretty close to being mergable. Let me know what you guys think!
Can you add a `Returns` section to the docstring of this and the other filters and give guidance as to where in the filter chain (beginning/middle/end/after-another-filter) these filters should go?