Renamed kernel/hash_spec to kernel/Hash_spec.

Rubinius uses Hash_spec, other specs also use capitalized form (e.g.
Complex_spec). Most likely this naming inconsistency is the result of a
case-insensitive filesystem.
Hash with compare_by_identity should not copy keys
More Module#const_defined? specs.
Added specs for setting module names.
Added specs for Marshal.dump of Symbol with encoding.
Added spec for Marshal.dump with negative Float.
Remove duplicate spec that got readded in e729c830
Removed ridiculous MRI-specific spec.
Improved specs on Time#strftime with "%L".
Add spec for ancestors on a singleton class

MRI 1.9 did not include the singleton classes in the list of ancestors
but 2.x does.
Added comment to env dependent spec.
Failing spec for String#delete with multibytes.

It looks like the current implementation of String#delete! iterates over bytes
instead of characters. Oddly enough this seems to work for Japanese Kanji but
not for other multibyte sequences.

See #3019.
Specs for String#encode with :universal_newline.
Rewrote Method#arity specs.
Rewrote Proc#arity specs.
Rewrote UnboundMethod#arity specs.
Added specs for String#% argument coercion.
Added Regexp specs for 'NONE', 'none' with ASCII source encoding.
Added specs for nsec precision subtracting Time objects
Added specs for Encoding::Converter#inspect