Swapped parameters of assert_equal in assert_select
Merge pull request #14450 from vlal/vlal-rails

Incorrect values being printed by assert_select.
Stop inherit `AC::Parameters` from `HWIA`

Inheriting from `HashWithIndifferentAccess` allowed programmers to call
enumerable methods over `AC::Parameters`, losing `@permitted` state, and
rendering Strong Parameters a barebones `Hash`. This changeset reduces
`AC::Parameters` interface, disallowing such operations.
Make `Parameters` looks like a `Hash`

* `is_a?(Hash)` returns true.
* `kind_of?(Hash)` returns true.
* All missing methods are proxied to underlying
  `HashWithIndifferentAccess` with deprecation warning.

Note that this commit can be reverted once we reach the next major
release.
Unpublicized `Parameters#converted_arrays`

This method is only use internally for memoization.
Refactor internal method of `Parameters`
Add deprecation on `Parameters.is_a?(Hash)`

We have to override `is_a?` and `kind_of` to make sure that it doesn't
break if people are testing `Parameters.is_a?(Hash)` or
`Parameters.kind_of?(Hash)`. However, since this change will be reverted
in the next major version, we should display the warning message.