Async filter

This fixes #2181
Almost done. Need your help.

- [x] implement the stuff
- [x] handle possible race conditions
- [ ] check is it causes performance degradation
- [ ] fix failing tests (looks like it changes records order in array sometimes)

P.S. I won't touch internet till 30 of november. On vacation :tropical_drink: