Remove duplicated HashWithIndifferentAccess#with_indifferent_access.
implement ActiveRecord::Base#pretty_print + changelog
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`
Refactor quoting of binary data to not be based on the column type
Return a null column when no column exists for an attribute
Keep column defaults in type cast form

The contract of `_field_changed?` assumes that the old value is always
type cast. That is not the case for the value in `Column#default` as
things are today. It appears there are other public methods that
assume that `Column#default` is type cast, as well. The reason for this
change originally was because the value gets put into `@raw_attributes`
in initialize. This reverts to the old behavior on `Column`, and updates
`initialize` to make sure that the values are in the right format.
Relax mail gem constraint from ~> 2.5.4 to ~> 2.5, >= 2.5.4

This allows Rails users to install mail 2.6 which relaxes
the mime-types dependency, which is a big win for a lot of people.

Previously, the mail gem restricted mime-types to ~> 1.16
but now it has expanded to [">= 1.16", "< 3"]

And the mime-types maintainer will also be checking that
2.x releases don't break mail.

See https://github.com/mikel/mail/pull/713
https://rubygems.org/gems/mail/versions/2.6.0
Merge pull request #15486 from sgrif/sg-binary-quoting

Refactor quoting of binary data to not be based on the column type
only look up the format option from the hash once
shorten up IGNORE_OPTIONS

since we are now passing the format value around, we can remove it from
the options hash, which means we don't need to consult as many values
from IGNORE_OPTIONS
remove another value from IGNORE_OPTIONS
remove :as and :anchor from IGNORE_OPTIONS
add a test for missing "via" parameter
test with an empty via
always pull out a via variable and simplify logic
always make :via a list
pull up via extraction and remove it from options / IGNORE_OPTIONS
:on is removed from options before the Mapping is instantiated, so remove it from IGNORE_OPTIONS