Add always_permitted_parameters as an option.

* This commit adds back the always_permitted_parameters
  configuration option to strong paramaters.
* The initial pull requests where this feature was added
  are the following:
  - https://github.com/rails/rails/pull/12682
  - https://github.com/rails/strong_parameters/pull/174
rename sequence only if it exists
Improve tests to use add_foreign_key DSL
Improvements per code review.

* General style fixes.
* Add changes to configuration guide.
* Add missing tests.
Update documentation for run_callbacks

In some cases run_callbacks will return nil.  I'm attempting to update the documentation for the method to clarify.
Do not change the global state of the test suite
Merge pull request #15946 from jamesprior/patch-1

Update documentation for run_callbacks
Always instrument ActiveSupport::Cache

The current approach is broken because it uses a thread local value
which means on multi-threaded environments it has to be turned on
per thread. Secondly, ActiveSupport::Notifications does not
instrument items when there are not subscribers so this flag is
unnecessary.
Merge pull request #15933 from rafael/master

Add always permitted parameters as a configurable option.

[Rafael Mendonça França + Gary S. Weaver]
Merge pull request #15943 from wagenet/cache-instrumentation

Always instrument ActiveSupport::Cache
Merge pull request #15934 from seuros/rename

rename primary key sequence only if it exists
Treat invalid uuid as nil