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

And prevents unexpectedness that would be introduced by an `eql?`
without the type requirement:

    hash = { 1.day => "one day" }
    hash[86400] #=> "one day"