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.
fixed a doc bug in the CHANGELOG.md s/does no longer depend on/no longer depends on/
Use ActiveRecord::Base#update! instead of #update_attributes!
decouple the `join_constraints` method from the parent pointer
pull parent and alias tacker from the nodes.

For now, we'll set the tables on the nodes manually.
remove dead code / make duplicate code more obvious
cache the primary key / typcast lookup on the stack
belongs_to can be treated the same way as has_one
reflections know if they are collections, so ask

We don't need to poke at the macro to figure out if we should look for a
cached record or not
fix variable name. we're constructing a model, not an association
we always have a reflection and it is on the node
extract conditional to the caller
we always have a model now
push up the loaded target checking
keep track of AR objects we've made as we walk the tree

Remove duplicate removal code because we avoid adding duplicates as we
walk the tree the first time