Merge pull request #15210 from arthurnn/fix_hbtm_reflection

Fix habtm reflection
Conflicts:
    activerecord/CHANGELOG.md
    activerecord/lib/active_record/counter_cache.rb
    activerecord/lib/active_record/reflection.rb
    activerecord/test/cases/reflection_test.rb
Use .to_s on _reflections lookup
Skip if the association was already loaded.
Fix test cases for inflector.rb
`yield` was missing in #with_dup, due to which 57 assertions were not running
in real, and all tests were passing by default.
Error was introduced in commit - 31ceb5e.
Rename Posts to Articles in Guides' Getting Started App, continuation of #15215 [ci skip]
simple solution that brings rake stats task to every kind of rails project
Remove duplicated to_s method call.
remove unused variable warning
`warning: assigned but unused variable - album`
Fix docs for ActionController::Renderers.add
Merge pull request #15328 from kuldeepaggarwal/remove-warnings

remove unused variable warning.
Merge pull request #15324 from andriytyurnikov/simple_rake_stats_for_everything

simple solution that brings rake stats task to all rails project
Merge pull request #15316 from akshay-vishnoi/test-cases

Fix test cases for inflector.rb
Merge pull request #15325 from tgxworld/no_need_to_call_to_s

Remove duplicated to_s method call.
pg, remove unused code. Use `extract_schema_and_table` instead.
pg, add missing `:nodoc:` to adapter.
Add an interface for type objects to control Ruby => SQL

Adds the ability to save custom types, which type cast to non-primitive
ruby objects.
Merge pull request #15307 from sgrif/sg-type-cast-for-write

Add an interface for type objects to control Ruby => SQL
Add missing test case for quoting behavior

It appears that the only time that `quote` is called with a column,
but without first calling `type_cast` is when where is called with an
array. My previous pull request broke this behavior, without failing
tests. This adds a test for the only case I can think of that exercises
the `if column.type == :integer` branch of `quote` effectively.
print generators on failed generate

Let's say we just ran:

```
$ rails g migrate add_click_to_issue_assignment
```

We will get an error that looks like:

```
Could not find generator migrate.
```

This patch adds all existing migrations to the output to make it easier for a developer to find a valid migration.

```
Could not find generator "migrate". Please select a valid generator:
Rails:
  assets
  controller
  generator
  helper
  integration_test
  mailer
  migration
  model
  resource
  scaffold
  scaffold_controller
  task
```


It would be nice to do some spelling detection and suggest alternatives, but for now this should  help.
Remove checks against `column.type` in abstract adapter quoting

The intention is to eventually remove `column` from the arguments list
both for `quote` and for `type_cast` entirely. This is the first step
to that end.