Fix stream closing when sending file with `ActionController::Live` included.

Fixes #12381
Check `respond_to` before delegation due to: https://github.com/ruby/ruby/commit/d781caaf313b8649948c107bba277e5ad7307314
Merge branch 'master' into ruby-2.2

* master:
  Revert "ask the fixture set for the sql statements"
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
[ci skip] - error_messages_for has been deprecated since 2.3.8 - lets reduce any confusion for users
Clarify behavior of json_escape, update examples

The behavior of json_escape was fixed in 2f1c5789, but the doc
changes and example in that commit incorrectly indicated that the
return value would be html-safe. Since quotation marks are
preserved, the raw value is not safe to use in other contexts
(specifically HTML attributes).
Restore DATABASE_URL even if it's nil in connection_handler test

- We have to restore DATABASE_URL to its previous state irrespective of
  previous value is nil or not
Merge pull request #13659 from prathamesh-sonpatki/fix-build

Restore DATABASE_URL even if it's nil in connection_handler test
Merge pull request #13657 from leriksen/master

[ci skip] - error_messages_for has been deprecated since 2.3.8 - lets re...
doc, API example on how to use `Model#exists?` with multiple IDs. [ci skip]

Refs #13658
Merge branch 'ruby-2.2'

* ruby-2.2:
  Check `respond_to` before delegation due to: https://github.com/ruby/ruby/commit/d781caaf313b8649948c107bba277e5ad7307314
Merge branch 'master' into laurocaetano-fix_send_file

* master: (536 commits)
  doc, API example on how to use `Model#exists?` with multiple IDs. [ci skip]
  Restore DATABASE_URL even if it's nil in connection_handler test
  [ci skip] - error_messages_for has been deprecated since 2.3.8 - lets reduce any confusion for users
  Ensure Active Record connection consistency
  Revert "ask the fixture set for the sql statements"
  Check `respond_to` before delegation due to: https://github.com/ruby/ruby/commit/d781caaf313b8649948c107bba277e5ad7307314
  Adding Hash#compact and Hash#compact! methods
  MySQL version 4.1 was EOL on December 31, 2009 We should at least recommend modern versions of MySQL to users.
  clear cache on body close so that cache remains during rendering
  add a more restricted codepath for templates fixes #13390
  refactor generator tests to use block form of Tempfile
  Fix typo [ci skip]
  Move finish_template as the last public method in the generator
  Minor typos fix [ci skip]
  make `change_column_null` reversible. Closes #13576.
  create/drop test and development databases only if RAILS_ENV is nil
  Revert "Speedup String#to"
  typo fix in test name. [ci skip].
  `core_ext/string/access.rb` test what we are documenting.
  Fix typo in image_tag documentation
  ...

Conflicts:
	actionpack/CHANGELOG.md
Removing without_thor_debug

a1d0c0fa3d8ca97edc8f2a1d6ba96af19221dbad

as bundler 1.5.2 is out now
use enum labels as form values. Achieved by `_before_type_cast`.

Closes #13650, #13672

This is an alternate implementation to solve #13650. Currently form fields
contain the enum value (eg. "1"). This breaks because the setter `enum=`
expects the label (eg. "active").

ActiveRecord::Enum allows you to use labels in your application but store numbers.
We should make sure that all parts after AR are dealing with labels and not the
underlying mapping to a number.

This patch defines `_before_type_cast` on every enum column to return the label.
This method is later used to fetch the value to display in form fields.

I deliberately copied the implementation of the enum getter instead of delegating to it.
This allows you to overwrite the getter and for example return a `Value Object` but have it
still work for form fields.
Merge pull request #13671 from arunagw/upgrade-bundler

Removing without_thor_debug
Fix iterating over DateTime by doing strict checking for Time objects

- Fixes #13667
Merge pull request #13668 from prathamesh-sonpatki/issue-13667

Fix iterating over DateTime by doing strict checking for Time objects
fixes the Gemfile generator templates

The templates were written as if for a given gem you could either pass a version
or options, but not both. But you may want to specify a version and also a group
or whether the gem has to be required, for example.