Update filters to be reset-able

This is mainly for testing/mocking purposes. For instance I was Mocking how the static class `Session` worked. In each test I was setting `Session::read` to return specific data. This worked great for a single test, however the filters are executed in insert order so the filter in my second test was called last.