Variant: add filter field functionality

* add has_filter() to the public API
* add filters() member function to the public API
* add tests

closes #80
it's true, any suggestions on how to make it usable by both classes?