add tests cases for using sampledBy with combined stream
re-implement sampledBy, by a simpler one. it also passes the new tests