Added hash_hamt.rbc to load_order.txt.
Deleted most references to compare_by_identity.

Hash#compare_by_identity was not introduced in 1.8.7. Remaining references
are in:

* kernel/common/marshal.rb
Fixed HAMT Hash.[] to remove default procs
Fixed HAMT Hash#delete to accept private #hash methods
Fixed HAMT Hash#[] to accept private #hash methods
Fixed HAMT Hash#each_pair to yield an array to a block expecting |*args|
Implemented HAMT Hash#== separately from Hash#eql?
Aliased HAMT Hash#indexes and Hash#indices to Hash#values_at
Fixed HAMT Hash#inspect to taint string when self is non-empty and tainted
Fixed HAMT Hash#reject! to return an Enumerator when called on a frozen instance
Fixed HAMT Hash#select to return an array of entries
Fixed HAMT Hash#select to return an Enumerator if called on a frozen instance
Fixed HAMT Hash#to_a to return a tainted array when self is tainted
Fixed HAMT Hash#to_s to use Hash#to_a
Fixed HAMT Hash.[] conversion of arguments that respond to #to_ary
Fixed HAMT Hash#delete_if to return an Enumerator when called on a frozen instance
Added key_hash attribute to HAMT Item.

This removes the need for additional key.hash calls in the HAMT
implementation, and also allows specs that were previously failing due
to Mock.verify_count (on key.hash calls) to pass.
Fixed HAMT State#match? to check for hash and object or value equality.

This also allows HAMT Hash to find a value via an identical key even
when #eql? is not reflexive
Fixed HAMT Hash#merge! to use and delegate frozen check to Hash#[]=
Added/fixed Hash specs testing for private #hash methods

spec/ruby/core/hash/hash_spec.rb
  * Added spec that tests that a hash is generated for hashes containing
    values with private hash methods

spec/ruby/core/hash/merge_spec.rb
  * Fixed private key spec; a key's hash method is only called if
    a block is passed to merge/merge!