Added method `#eql?` to `ActiveSupport::Duration`, in addition to `#==`.

Currently, the following returns `false`, contrary to expectation:

    1.minute.eql?(1.minute)

Adding method `#eql?` will make this behave like expected. Method `#eql?` is
just a bit stricter than `#==`, as it checks whether the argument is also a
uration. Their parts may be different though.

    1.minute.eql?(60.seconds)  # => true
    1.minute.eql?(60)          # => false
SQLite3Adapter now checks for views in table_exists? fixes: 14041
Propagate test messages through assert_routing helper, Fixes #14908

assert_routing was not raising the message passed into the assertion
violation that it raised. This change propagates messages through
the on_fail error.

This fixes this error:
https://github.com/rails/rails/issues/14908

A test case for this issue is located here.
https://github.com/estsauver/test14908

To see that test case fail in the example app, just run
ruby -Itest test/controllers/guests_controller_test.rb
Update RecordNotFound exception cases to include a message with the
Model that the Record was not found in.
reset_column_infomation shouldn't be part of the assertion.
Updating Associations::Preloader docs

Much of the previous documentation introduced features new in 2011. This
commit refreshes it to provide clearer code examples and spends more
time describing the normal case (preloaded associations) and less time
describing the fallback.

[ci skip]
Define the Duration#instance_of? method

Since Duration is extending from ProxyObject which extends itself from
BasicObject, the Duration object doesn't respond to the #instance_of?
method. Thus, the #method_missing hook get triggered, delegating the
method to its `value` attribute.

However, Rubinius' #eql? definition relies on #instance_of?, thus this
will equal to true with a Fixnum (since its `value` attribute is a
Fixnum) while it should not.

The previous behavior was wrong anyway, no matter the implementation.
Preparing for 4.2.0.beta1 release
provide a builder for form labels to customize wrapping around I18n content
Added enqueue_at support for QueAdapter in ActiveJob

* Added inline job runner for Que in test/support
* Updated QueAdapter to support enqueue_at
adding the exception RecordNotFound to UUID find
Don't fight against ourselves for the default log level

If we want to always default to :debug, let's just do that.

At which point the production.rb entry can become an "uncomment to
change" instead.
Refactor ActionDispatch::RemoteIp

Refactored IP address checking in ActionDispatch::RemoteIp to rely on
the IPAddr class instead of the unwieldly regular expression to match
IP addresses. This commit keeps the same api but allows users to pass
IPAddr objects to config.action_dispatch.trusted_proxies in addition
to passing strings and regular expressions.

Example:

    # config/environments/production.rb
    config.action_dispatch.trusted_proxies = IPAddr.new('4.8.15.0/16')
Replacing an each with reduce

The functionality has not changed, but the code is more elegant by
using `reduce` instead of `each`.

This way no accumulator needs to be declared, no explicit return is
needed.
fix server names [ci skip]

Per feedback in https://github.com/rails/rails/commit/af63e4a2546629c3fb2d53cffb7d4ea0e8663f68#commitcomment-7477636
fix grammar [ci skip]
Merge pull request #16604 from saarons/clean-remote-ip-middleware

ActionDispatch::RemoteIp accept IPAddr matches for trusted proxies
Revert "Add I18n support for `:placeholder` HTML option is passed to form fields"
Merge pull request #16629 from rails/revert-16438-input-placeholder-i18n

Revert "Add I18n support for `:placeholder` HTML option is passed to for...
[ci skip] Added documentation for has_and_belongs_to_many scope parameter