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
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.
test pg, we don't care about the internal state of `column#default`.

That data is internal to Active Record. What we care about is that
new records have the right default value.
test pg, move bit string type tests into `bit_string_test.rb`.
Refactor determination of whether the field has changed

The types know more about what is going on than the dirty module. Let's
ask them!
pg, preserve type when schema dumping bit and bit varying columns.
Merge pull request #15442 from sgrif/sg-refactor-field-changed

Refactor determination of whether the field has changed
Respect limit for PG bit strings
Merge pull request #15487 from sgrif/sg-bit-limit

Respect limit for PG bit strings
Refactor quoting of binary data to not be based on the column type
Return a null column when no column exists for an attribute