Raise RuntimeErrors with inspectable and MRI-independent messages.

Previous behaviour was MRI-dependent, now we're making sure the message
is correctly shown: something that can be relyied upon across every
Ruby implementation.
Merge pull request #13020 from razielgn/raise-inspectable-messages

Raise RuntimeErrors with inspectable and MRI-independent messages.
Added `rewhere` usage to AR querying guides
Merge pull request #13026 from vipulnsward/document_rewhere

Added `rewhere` usage to AR querying guides
Better error message for typos in assert_response argument.

This commit makes it really easy to debug errors due to typos like
"assert_response :succezz".
Merge pull request #13025 from pwnall/nice_test

Better error message for typos in assert_response argument.
`delgated` => `delegated`
Merge pull request #13029 from akshay-vishnoi/documentation

`delgated` => `delegated`
avoiding calling of #option_value_selected? two times
Merge pull request #13027 from akshay-vishnoi/f-refactor

avoiding calling of #option_value_selected? two times
Revert "Merge pull request #13027 from akshay-vishnoi/f-refactor"

This reverts commit f4a5a9ea4d183f4102796215d4502c46dbe3e52b, reversing
changes made to 7ccb482181ee6c47c765406009018a15172812de.

Reason:

The logic is different, the first call to #option_value_selected? is for
the :selected option (the argument is the "selected" variable), the second
call is for the :disabled option (the argument is the "disabled" variable).
Fix some minor typos [ci skip]
Merge pull request #13034 from vipulnsward/some_typos

Fix some minor typos
require the files we test
Action Pack Variants

By default, variants in the templates will be picked up if a variant is set
and there's a match. The format will be:

  app/views/projects/show.html.erb
  app/views/projects/show.html+tablet.erb
  app/views/projects/show.html+phone.erb

If request.variant = :tablet is set, we'll automatically be rendering the
html+tablet template.

In the controller, we can also tailer to the variants with this syntax:

  class ProjectsController < ActionController::Base
    def show
      respond_to do |format|
        format.html do |html|
          @stars = @project.stars

          html.tablet { @notifications = @project.notifications }
          html.phone  { @chat_heads    = @project.chat_heads }
        end

        format.js
        format.atom
      end
    end
  end

The variant itself is nil by default, but can be set in before filters, like
so:

  class ApplicationController < ActionController::Base
    before_action do
      if request.user_agent =~ /iPad/
        request.variant = :tablet
      end
    end
  end

This is modeled loosely on custom mime types, but it's specifically not
intended to be used together. If you're going to make a custom mime type,
you don't need a variant. Variants are for variations on a single mime
types.