Improve Contributing to Rails Guide

Logically group the content, so it makes more sense if someone tries to read from start of page to end of page. [ci skip]
Add documentation for Thread#freeze
Instead boat load of libraries, simply say StdLib
Use path where extensions are defined, not used

For consistency with all other documentation, point to where these core
extensions are defined, not where the example code comes from.

[ci skip]
Document LoadError core extensions

[ci skip]
Fix a few grammar issues. [ci skip]
Correct docs as singlton true is not returned here

[ci skip]
Fix spelling errors and grammar issues

Including replacing a few "smart quotes" with regular quotes (' and "),
for consistency.
[ci skip]
[ci skip] Use valid current config in example

`reaping_frequency` is used in Active Record `reap_frequency` is not
re-phrase how to run a test
[ci skip] PP does not generate pass by default

This was changed in https://github.com/rails/rails/pull/13415/files
[ci skip] document `statement_limit` 

Per discussion at https://github.com/rails/rails/issues/14645#issuecomment-40499409
CSRF protection should rescue exception not extend

I think the changes to the default behaviour mean that rails will throw an exception when an invalid authenticity token is found.  The previous proposed code of calling super then sign_out meant that sign_out was never reached - the exception handler never returned.

I think the best approach now is to catch the exception, although I'm not 100% certain on that.
Include default rails protect_from_forgery with: :exception

Extend previous changes, include the default line from the application controller that new rails applications are created with: 
  protect_from_forgery with: :exception

Minor wording changes to align.
Optimize select_value, select_values, select_rows and dry up checking whether to exec with cache for Postgresql adapter

Reduces creating unused objects, with the most dramatic reduction in select_values which used to map(&:first) an array of single element arrays.
Merge pull request #14786 from PaulL1/patch-1

CSRF protection should rescue exception not extend
Fix spelling and proper nouns

[ci skip]
Singularize association names before camelization

So that irregular multi-word pluralization rules have to be defined only for snake-case strings.
Regression test for irregular inflection on has_many

Also add a Changelog entry

[related #9702]
[fixes #8928]
Merge pull request #14793 from arthurnn/fixes_8928

Fixed has_many association to make it support irregular inflections.