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 rename to something more meaningful such as:  `test_filter_sfile_with_all_false_filter_returns_empty_file`?  I'm guilty of starting the trend of meaningless names, but a meaningful name is better.