Merge pull request #8173 from nikitug/match_classes_without_to_s

Match classes without to_s conversions.
Remove duplicated ConnectionHandling extension in AR::Base

Thanks @toretore.
https://github.com/rails/rails/commit/9e4c41c903e8e58721f2c41776a8c60ddba7a0a9#commitcomment-2134706
Simplify code by taking advantage of latest mocha (v0.13.0).

This only works with mocha v0.13.0 or later.

Note that this also fixes a few subtle bugs present in the current
implementation :-

* Mocha was raising a `MiniTest::Assertion` instead of a
  `Mocha::ExpectationError` as intended. The latter is not recognized by
  MiniTest as an assertion failure and so it is recorded as a test
  *error*, not a test *failure* as it ought to. This leads to
  potentially confusing output in the test results.

* Mocha verification should happen as part of the test. The verification
  of expectations is equivalent to a set of assertions. These assertions
  should happen as *part of* the test so that they have a chance to
  cause the test to fail, and not just as part of the teardown. Also if
  an assertion fails during the test, then there is no need to verify
  expectations, because only the first assertion failure is normally
  reported and all subsequent bets are off.

* Expectation verification should be counted as an assertion. Mocha
  cannot record each expectation verification as an assertion, because
  we weren't passing in an assertion counter to `#mocha_verify`.
Merge and add tests related to 5215
`#as_json` isolates options when encoding a hash. Closes #8182

Setting options in a custom `#as_json` method had side effects.
Modifications of the `options` hash leaked outside and influenced
the conversion of other objects contained in the hash.
cleanup, removed whitespace from CHANGELOG
Debugger gem doesn't work with patchlevel < 327
`#pluck` can be used on a relation with `select` clause.

Closes #7551
Update production.rb documentation: only files in app/assets are in config.assets.precompile
Update production.rb: Split long comment in two lines
Merge pull request #8184 from vipulnsward/add_merge_tests

Merge and add tests related to #5215
depend on voloko/sdoc again

voloko/sdoc seems to be maintained again, in particular
the issues that made us fork it are resolved.
Updated the preformance_testing guide to reflect the fact that prof-rails no longer needs to be fetched from github
only clear caches if we are actually connected to the database
Merge pull request #8185 from senny/8182_as_json_options_stick_around

`#as_json` isolates options when encoding a hash. Closes #8182
Ruby 2.0.0 defaults source encoding to utf-8 so we need to specifically tag this file with us-ascii
Add a regression test on #8195
Merge pull request #8180 from freerange/mocha-fixes-supporting-only-0.13-onwards

Simplify code by taking advantage of latest mocha (v0.13.0).
Use new mocha version and add changelog entry for #8180
Merge pull request #8201 from nikitug/regression_test_on_ar_cache_key_precision

Add a regression test on #8195