Fix bug, when ':dependent => :destroy' option violates foreign key constraints, issue #12380
Moved explanation of `--mountable` option up

The example code uses `--mountable`. In previous version this was followed by an explanation of the `--full` option, which doesn't make sense. Later on in the text this is better explained. I moved this explanation up without repeating too much.
skip migration check if adapter doesn't support it
Fix Baseclass becomes! subclass.
Remove duplicated HashWithIndifferentAccess#with_indifferent_access.
implement ActiveRecord::Base#pretty_print + changelog
Fixed `ActiveSupport::TimeWithZone#-` so precision is not unnecessarily lost

When working with objects with a nanosecond component, the `-` method may
unnecessarily cause loss of precision.

`ActiveSupport::TimeWithZone#-` should return the same result as if we were
using `Time#-`:

    Time.now.end_of_day - Time.now.beginning_of_day #=> 86399.999999999

Before:

    Time.zone.now.end_of_day.nsec #=> 999999999
    Time.zone.now.end_of_day - Time.zone.now.beginning_of_day #=> 86400.0

After:

    Time.zone.now.end_of_day - Time.zone.now.beginning_of_day
    #=> 86399.999999999
Test `except!` in other cases too
Added missing test case for migrations when using sql structure
Test the serialized types of virtual columns in XML

The previous tests were passing, because nothing ever looked at the
generated XML. What was previously being generated was
`<firstname type="NilClass">...`, which is not consistent with all other
cases where there is not a known type.
Refactor XML serializer to not depend on `serialized_attributes`
[ci skip] fix "note" syntax
[ci skip] less derogatory explanation of defaults
[ci skip] add fixture docs link to guides

The fixtures API docs are really comprehensive. We should either be driving people there, or perhaps making fixtures its own guide.
[ci skip] explain association behavior. 

When you manually specify `id:` attribute in a fixture Rails' built in association assignment feature will no longer work. http://stackoverflow.com/questions/23985675/incorrect-association-in-fixtures

This commit raises awareness of this behavior and encourages developers to look directly at the fixture documentation.
drastically reduce object allocations

before this change, we were allocating AS::SafeBuffer objects that were
being interpolated in to a string, so the safe buffer object was being
thrown away.  This change only allocates a string (vs a string *and* a
safebuffer) and interpolates the string.

On my test application, this reduced the AS::SafeBuffer objects from
1527k per request to about 500 per request.
call `capture` fewer times from `form_for`
fix polymorphic? method and reuse it

Fix polymorphic to check for `options[:polymorphic]` instead of
`options.key? :polymorphic` and then reuse the method `polymorphic?`
method instead of constantly checking the same `options[:polymorphic]`.
Merge pull request #15483 from eileencodes/reuse-available-reflection-polymorphic-methods

fix polymorphic? method and reuse it
pg test, examples for default values and schema dumping of point types.

/cc @sgrif