Removes elements matching the given predicate.
All bulk operations preserve the weight array alignment with items and are performed in a single pass to avoid repeated shifting.
true if the list changed as a result.