HashWithIndifferentAccess#select working as intended

Before this commit, #reject returned a HashWithIndifferentAccess, whereas #select returned a Hash. Now #select also returns a HashWithIndifferentAccess.

I think the behavior was confusing, refactoring some code I changed a couple of `hash_with_indifferent_access.reject { |k,v| v.blank? }` by a `hash_with_indifferent_access.select { |k,v| v.present? }` because I found it a lot more readable in the context it was, and was surprised that the behavior changed.

I'm not sure if testing both bang methods is necessary, but I thought it might not hurt.

Hope to hear what you think.

Fixes #10723