A pass over the Getting Started guide sections 1, 2, and 3 [ci skip]

* Add note about managing Ruby environments
* Point to curated lists of Ruby learning resources
* Expound on DRY and Convention over Configuration
* Remove note on superuser--thankfuly coders new to Rails don't have to sudo anymore :)
* Installation/verification instructions for SQLite3, since it's a dependency
Merge pull request #13571 from bak/getting_started_guide

A pass over the Getting Started guide sections 1, 2, and 3 [ci skip]
test case to illustrate current PostgreSQL composite behavior.
add patch in HTTP Verb Constraints [ci skip]
Merge pull request #14015 from acapilleri/add_patch

add patch in HTTP Verb Constraints [ci skip]
Don't symbolize tainted data.

`I18n.locale=` symbolizes its argument, so passing it `params[:locale]`
allows one to DOS your application by visiting `...?locale=` URLS
repeatedly, with unique values, until the never-GCed symbols monopolize
the available memory.
Merge pull request #14016 from devlinzed/i18n_doc_fix

Documentation: Don't symbolize tainted data. [ci skip]
Revert "Don't symbolize tainted data." [ci skip]

Reason: i18n whitelists now locales without passing through symbols,
see https://github.com/svenfuchs/i18n/blob/master/lib/i18n.rb#L278.
Therefore, this snippet is no longer a good practice.

This reverts commit ec0664a6eb8906fcd31a53a1efad69bdc7fe6f5b.
add a send so `apply` can be called.  Fixes #13510

THIS IS A HUGE HACK.  Thor does not allow us to define public methods
without turning them in to "thor tasks".  That means we cannot subclass
the `apply` method and make it public, so we have to make the method
private and call `send` on it.
adding connection parameter to check_pending for migrations
adding missed change