Remove the #sum method from CollectionAssociation

Since edd94cee9af1688dd036fc58fd405adb30a5e0da, CollectionProxy
delegates all calculation methods - except count - to the scope,
which does basically what this method was doing, but since we're
delegating from the proxy, the association method was never called.
Merge branch 'deprecate-calculations-with-block'

Follow up of the discussion from the original merge commit:
https://github.com/rails/rails/commit/f9cb645dfcb5cc89f59d2f8b58a019486c828c73#commitcomment-1414561

We want to avoid people's mistakes with methods like count and sum when
called with a block, that can easily lead to code performing poorly and
that could be way better written with a db query.

Please check the discussion there for more background.
Closes #8268
Remove private partial/template renderer methods

Since now these objects are not cached anymore, there's no need to have
these private methods, just instantiate each of them in the necessary
place.
Allow setting a symbol as path in scope on routes

Was surprising found that this example doesn't work:

  scope :api do
    resources :users
  end

and the right form to use it is:

  scope 'api' do
    resources :users
  end

I think this should work similary as `namespace` where both are allowed.
These two are equivalent:

  namespace :api do
    resources :users
  end

  namespace 'api' do
    resources :user
  end
prevent mass assignment of polymorphic type when using `build`

Closes #8265
Merge pull request #8114 from guilleiguaran/use-symbols-in-scope

Allow setting a symbol as path in scope on routes
Indent changelog markdown code to highlight correctly

[ci skip]
Merge pull request #8291 from senny/8265_build_with_polymorphic_association

prevent mass assignment of polymorphic type when using `build`

Conflicts:
	activerecord/CHANGELOG.md
Merge branch 'master' of github.com:lifo/docrails
`assert_template` fails with empty string when a template has been rendered

For instance, it prevents false positive in this case:

    file = nil
    get :index
    assert_template("#{file}")
`assert_template` fails with empty string.
Move initialize_copy method around to let new method / build alias closer
Simplify constraints condition in scope when checking for Hash
Normalize scope recovering :blocks option name

Use the same :blocks key in the recover hash to revert the scope options
later.
Simplify scope options recovery by using merge!

Instead of iterating again over the options and setting one by one, we
can just merge the recover hash back to the scope one since all keys
match.
Use merge! in some places to avoid creating extra hashes
Refector a bit to remove extra slice iteration and splat call

This yields a small bit of performance improvement when building the
defaults from constraints, specially considering that it's rather common
for constraints to be empty.

Also, there's a bit of duplicated code in here that I have to check
before extracting.
Fix changelog entry about fast_string_to_time fix

Introduced in 53ca22f2e11cd3050d75385bc31b6bb5055a2738.
Thanks @rochefort. [ci skip]
document :hidden_field_id option for fields_for
Merge pull request #8306 from senny/documentation_for_hidden_field_id

Document :hidden_field_id option for fields_for [ci skip]