HashWithIndifferentAccess#select working as intended

Before this commit, #reject returned a HashWithIndifferentAccess,
whereas #select returned a Hash. Now #select also returns a
HashWithIndifferentAccess.
Remove warnings on Ruby 2.1

Conflicts:
	activesupport/lib/active_support/hash_with_indifferent_access.rb
Fix OrderedHash.select to return self instance.

On ruby 2.1.1 the behavior of .select and .reject has changed.
They will return a Hash new instance, so we need to override them to
keep the instance object class.
Syntax polishing
Merge pull request #14198 from arthurnn/fix_14188

Fix Hash#select and #reject on ruby 2.1.1