Preserve class on HashWithIndifferentAccess#select

Previously, calling #select on an instance of HashWithIndifferentAccess could
lead to unexpected behaviour as it returned an instance of Hash. This is
because Ruby's implementation makes a copy as an instance of Hash.

This commit defines #select on HashWithIndifferentAccess to return a
hash of the correct class.