Make `AC::Params#to_h` return Hash with safe keys

`ActionController::Parameters#to_h` now returns a `Hash` with
unpermitted keys removed. This change is to reflect on a security
concern where some method performed on an `ActionController::Parameters`
may yield a `Hash` object which does not maintain `permitted?` status.
If you would like to get a `Hash` with all the keys intact, duplicate
and mark it as permitted before calling `#to_h`.

    params = ActionController::Parameters.new(name: 'Senjougahara Hitagi')
    params.to_h # => {}

    unsafe_params = params.dup.permit!
    unsafe_params.to_h # => {"name"=>"Senjougahara Hitagi"}

    safe_params = params.permit(:name)
    safe_params.to_h # => {"name"=>"Senjougahara Hitagi"}

This change is consider a stopgap as we cannot chage the code to stop
`ActionController::Parameters` to inherit from
`HashWithIndifferentAccess` in the next minor release.

Also, adding a CHANGELOG entry to mention that
`ActionController::Parameters` will not inheriting from
`HashWithIndifferentAccess` in the next major version.
Add missing `Hash` methods to `AC::Parameters`

This is to make sure that `permitted` status is maintained on the
resulting object.

I found these methods that needs to be redefined by looking for
`self.class.new` in the code.

* extract!
* transform_keys
* transform_values
Refactor code to reduce duplicate `self.class.new`
Seperate Parameters accessors and mutators tests
Fix failing test on several methods on Parameter

* `each`
* `each_pair`
* `delete`
* `select!`
User `#to_hash` instead of calling `super`

Ruby 1.9.3 does not implement Hash#to_h, so we can't call `super` on it.
require 'test_help' -> require 'rails/test_help'
[ci skip] Update plugin doc with the latest rails
Add missing require
Mention deprecation of assert_select and friends in the release notes [ci skip]
Sync Action View release notes [ci skip]
Sync Action Mailer release notes [ci skip]
Removed unnecessary word
[ci skip] config.active_record.errors_in_transactional_callbacks -> config.active_record.raise_in_transactional_callbacks
Merge pull request #16553 from tomkadwill/removed_word

[ci skip] Removed unnecessary word from Getting Started
http://gembundler.com/  =>  http://bundler.io/
4.2 Release Notes pass [skip ci]
Merge pull request #16552 from untidy-hair/update_plugin_guide

[ci skip] Update plugin doc with the latest rails
use same idiom to define class method as in every other adapter.
"warning: assigned but unused variable"