Improve poor security recommendation in docs

As reported in #9960, the current documentation recommends an insecure practice for
key generation from a password (a single round of SHA-256). The modified documentation
uses ActiveSupport::KeyGenerator to perform proper key stretching.
Moved the check for the rails test environment into rails/test_unit so that you
can select frameworks separately when running rake test.
Add test for `format: false` with resources - closes #10323
fixed missing comma in example
Merge pull request #10324 from prijutme4ty/guides_fix

fixed missing comma in example
Don't require having Rails.application to run database tasks
Revert "Revert "`belongs_to :touch` behavior now touches old association when transitioning to new association" until a proper fix is found for #10197"

This reverts commit 7389df139a35436f00876c96d20e81ba23c93f0a.

Conflicts:
	activerecord/test/cases/timestamp_test.rb
added test cases for #10197
Reset the primary key for other tests
Removed unused associations
Lookup the class at runtime, not when the association is built

Trying to lookup the parent class when the association is being built
runs the risk of generating uninitialized constant errors because
classes haven't been fully defined yet. To work around this we look up
the class at runtime through the `association` method.

Fixes #10197.
Merge pull request #10256 from wangjohn/moving_check_for_test_environment_into_rails_env

Moved the check for the rails test environment into rails.rb

Closes #10238
Remove code duplication
Merge pull request #10331 from neerajdotname/exec-migration-in-transaction

Remove code duplication
Fix a SystemStackError that occurs when using time zone aware attributes.

This fixes issue #10066
Added testcase for #10067 and a CHANGELOG entry about this change.
Use DatabaseTasks.fixtures_path instead of FIXTURES_PATH in db.rake

This will allow to set fixtures path in global config easier, it should
be not needed to use FIXTURES_PATH every time user wants to load
fixtures.
Add some documentation to ActiveRecord::Tasks::DatabaseTasks

This is a public class, which could be used directly in order to allow
easier database management. Now it also contains settings, which will be
used by databases.rake.
Don't require Rails.env in order to use AR::Tasks::DatabaseTasks
Move CHANGELOG entry for db.rake improvements to 4.0.0