Added test to ensure that DescendantsTracker does not leak memory on singleton classes
Fix doc in Postgres database creation
add active model basics wip to guides/documents.yaml
support :unless_exist for FileCache
Moved all JSON core extensions into core_ext/object/json

TL;DR The primary driver is to remove autoload surprise.

This is related to #12106. (The root cause for that ticket is that
json/add defines Regexp#to_json among others, but here I'll reproduce
the problem without json/add.)

Before:

   >> require 'active_support/core_ext/to_json'
   => true
   >> //.as_json
   NoMethodError: undefined method `as_json' for //:Regexp
     from (irb):3
     from /Users/godfrey/.rvm/rubies/ruby-2.0.0-p195/bin/irb:16:in `<main>'
   >> //.to_json
   => "\"(?-mix:)\""
   >> //.as_json
   => "(?-mix:)"

After:

   >> require 'active_support/core_ext/to_json'
   => true
   >> //.as_json
   => "(?-mix:)"

This is because ActiveSupport::JSON is autoloaded the first time
Object#to_json is called, which causes additional core extentions
(previously defined in active_support/json/encoding.rb) to be loaded.

When someone require 'active_support/core_ext', the expectation is
that it would add certain methods to the core classes NOW. The
previous behaviour causes additional methods to be loaded the first
time you call `to_json`, which could cause nasty surprises and other
unplesant side-effects.

This change moves all core extensions in to core_ext/json. AS::JSON is
still autoloaded on first #to_json call, but since it nolonger
include the core extensions, it should address the aforementioned bug.

*Requiring core_ext/object/to_json now causes a deprecation warnning*
Add params option for button_to

The parameters are rendered as hidden form fields within the generated
form. This is useful for when a record has multiple buttons associated
with it, each of which target the same controller method, but which
need to submit different attributes.
slice! should not remove default hash value/proc
Fix typo: `has_many :pets`, not `pets :has_many`.
Merge pull request #12629 from Peeja/has_many-pets-typo

Fix typo: `has_many :pets`, not `pets :has_many`.
Merge pull request #12624 from timsly/master

update CHANGELOG
Improve the CHANGELOG entry [ci skip]
Merge pull request #12611 from antonio/slice_bang_honor_default_proc

Make slice! honor default hash value/proc
always check to see if methods exist after calling define_attribute_methods
Merge pull request #10471 from andyw8/button_to_params

Add params option for button_to

Conflicts:
	actionpack/CHANGELOG.md
Merge pull request #12635 from mperham/4-0-stable

Allow any version of BCrypt
Add CHANGELOG entry for #12635 [ci skip]
Merge pull request #12632 from al2o3cr/fix_race_for_attribute_methods

Always check to see if methods exist after calling define_attribute_methods
Merge pull request #8491 from igagnidz/master

Issue #8442
Improve the test code for #8422

* Remove unneeded comments.
* Use key? instead of keys.include?.
Avoid unnecessary catching of Exception instead of StandardError (converting Exceptions into StandardErrors)