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!
This whole thing could be shortened to

```python
if all(func(record_dict) for func in filters):
    new_sstr = self.formatter.get_sstr(**record_dict)
    g.write(new_sstr + '\n')
```