Combine and rename setFilter and applyFilter (#7963)
setFilter is an unsuitable name since it looks like a setter even though
it isn't one. It's therefore renamed to withFilter.
The difference between setFilter and applyFilter is very confusing. The
original reason for the distinction was that they had incompatible
return types (Void vs F), but this is resolved by changing the
non-appendable version to use ? instead of Void.
One side effect of this change is that setFilter cannot be used on an
appendable filter provider to create a wrapped data provider without
further filtering support. This theorethical case is still supported by
using convertFilter with a Void -> F converter.