Use symbols instead of strings

ActiveSupport::Concern is used all over Rails
This PR will only create 3 new objects as keys are never recreated and
are not subject to garbage collection.

The strings were being uniquely created and garbage collected. I don't
have any performance numbers but this should be better than all of the
GC.
Making the rake file for tests easier to read.

I'm defining a new class which modularizes how the `rake test` tasks are
defined and invoked.
Adding documentation to the Rails initialization guide. [ci skip]
Improved grammar and replaced 'dbs' slang with 'databases'
Remove deprecation warning from AttributeMethodsMatcher
Remove depreacted finders

They were deprecated in 4.0, planned to remove in 4.1
Merge pull request #11150 from jetthoughts/remove_depr_message_for_attribute_method_matcher

Remove deprecation warning from AttributeMethodsMatcher
adding additional plugins for debugging [ci skip]
Fix indentation
Merge pull request #11153 from strzalek/remove-ar-deprecated-finders

Remove depreacted finders
Fix rake test_sqlite3_mem

Clearly nobody uses this except me. It's fast people!
Fix test

Oops. We need to estalish/remove the connection in the setup/teardown,
else it messes with the fixtures.
Apply default scope when joining associations.

For example:

    class Post < ActiveRecord::Base
      default_scope -> { where published: true }
    end

    class Comment
      belongs_to :post
    end

When calling `Comment.join(:post)`, we expect to receive only
comments on published posts, since that is the default scope for
posts.

Before this change, the default scope from `Post` was not applied,
so we'd get comments on unpublished posts.
Fix layouts and rendering guide example using flash.now instead

Thanks @lintzchiang. [ci skip]
Merge pull request #11104 from drewda/patch-1

Adding additional plugins to debugging guide [ci skip]
Simplify/fix implementation of default scopes

The previous implementation was necessary in order to support stuff
like:

    class Post < ActiveRecord::Base
      default_scope where(published: true)
      scope :ordered, order("created_at")
    end

If we didn't evaluate the default scope at the last possible moment
before sending the SQL to the database, it would become impossible to
do:

    Post.unscoped.ordered

This is because the default scope would already be bound up in the
"ordered" scope, and therefore wouldn't be removed by the
"Post.unscoped" part.

In 4.0, we have deprecated all "eager" forms of scopes. So now you must
write:

    class Post < ActiveRecord::Base
      default_scope { where(published: true) }
      scope :ordered, -> { order("created_at") }
    end

This prevents the default scope getting bound up inside the "ordered"
scope, which means we can now have a simpler/better/more natural
implementation of default scoping.

A knock on effect is that some things that didn't work properly now do.
For example it was previously impossible to use #except to remove a part
of the default scope, since the default scope was evaluated after the
call to #except.
find_in_batches should work without logger
Remove order_values argument now that default_scope is simplified

In 94924dc32baf78f13e289172534c2e71c9c8cade the internal default_scope
implementation has changed making it simpler to follow, meaning that the
old usage of with_default_scope has been removed.

With that, order_values was the same argument for both calls to
find_first_with_limit, so remove it and use the existent attribute
for the sake of clarity/simplification.
Omit turbolinks configuration completely on skip_javascript generator option
Merge pull request #11161 from dmitry/find_in_batches_works_without_logger

ActiveRecord find_in_batches should work without logger

When I set logger to nil both methods from Batches module find_in_batches or find_each should work anyway.