Added `ActiveSupport::Duration#eql?`

This makes `eql?` return `true` for durations of the same value.
`eql?` does require that `other` is an `ActiveSupport::Duration`.
This requirement fixes a few existing inconsistencies:

    1.second.eql?(1) #=> true
    1.eql?(1.second) #=> false

It also brings ActiveSupport::Durations inline with other numeric types
in Ruby. For instance:

    { 1 => "one", 1.second => "two" }
    # Was => { 1 => "two" }
    # Now => { 1 => "one", 1.second => "two" }

    { 1 => "one", 1.0 => "two" }
    #=> { 1 => "one", 1.0 => "two}