Improve ERB dependency detection.

The current implementation can't handle some special cases of oddly-formatted Ruby. Now we are able to detect them:

* Multi-line arguments on the `render` call
* Strings containing quotes, e.g. `"something's wrong"`
* Multiple kinds of identifiers - instance variables, class variables and globals
* Method chains as arguments for the `render` call

Also, this fix reduces the rate of "false positives" which showed up when we had calls/access to identifiers containing `render`, like `surrender` and `rendering`.
Avoid scanning multiple render calls as a single match.

Each chunk of text coming after `render` is now handled individually as a possible list of arguments.
Update changelog
single quotes for controller generated routes

Write routes in route.rb with single quotes

    get 'welcome/index'

instead of

    get "welcome/index"
Merge pull request #13705 from mess110/controller_generator_route_quotes

Single quotes for controller generated routes. This is more consistent with all other Rails generated code.
Enum mappings are now exposed via class methods instead of constants.

Example:

    class Conversation < ActiveRecord::Base
      enum status: [ :active, :archived ]
    end

Before:

    Conversation::STATUS # => { "active" => 0, "archived" => 1 }

After:

    Conversation.statuses # => { "active" => 0, "archived" => 1 }
Don't try to get the subclass if the inheritance column doesn't exist

The `subclass_from_attrs` method is called even if the column specified by
the `inheritance_column` setting doesn't exist. This prevents setting associations
via the attributes hash if the association name clashes with the value of the setting,
typically `:type`. This worked previously in Rails 3.2.
Merge pull request #13710 from ujjwalt/hotfix/sti

Active Record's subclass_from_attributes shouldn't assume :type is for STI unless there is a type column.
sqlite >= 3.8.0 supports partial indexes
Merge pull request #13350 from ccutrer/sqlite-partial-indexes

sqlite >= 3.8.0 supports partial indexes
don't establish a new connection when testing with `sqlite3_mem`.

This fixes broken `rake test_sqlite3_mem` suite for Active Record.
The problem is that that the old database with the schema is lost
when establishing a new connection. Upon reconnting we are left
with a blank database and tests down the line start failing.
Use single quotes in generated files
"string" isn't a valid column type for ActiveRecord

Conflicts:
	activerecord/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb
Updated comment to mention the enum mapping class method [ci skip]
directly create the ARel AST

rather than allocating a new Relation, just make the AST directly
rm dup code

https://github.com/rails/rails/blob/e64a83cdbd3ce836f3339c600c1006b20c23d8fd/activerecord/test/cases/relation/merging_test.rb#L80-91
Merge pull request #13713 from chulkilee/use-single-quotes

Use single quotes in generated files
Unify changelog entries about single quotes [ci skip]
Avoid converting :on option to array twice when defining commit/rollback callbacks
Get rid of unused TransactionError constant

This has been added 9 years ago in
a677da209b16f43198b3485dda89dce862fb9bfb, and removed 6 years ago in
38f8252e2d0a109d1b833d6b289cd989e7bfffe4.