Remove duplicated HashWithIndifferentAccess#with_indifferent_access.
implement ActiveRecord::Base#pretty_print + changelog
Test `except!` in other cases too
Fix AS::NumberHelper results with rationals

:precision was incorrectly being applied to Rationals

before:
  ActiveSupport::NumberHelper.number_to_rounded Rational(10, 3), precision: 2
  => "3.3"
after:
  ActiveSupport::NumberHelper.number_to_rounded Rational(10, 3), precision: 2
  => "3.33"
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`
Merge pull request #15379 from xuanxu/rational_precision

Fix AS::NumberHelper results with rationals
just use `assert`
File.exist? instead of File.exists? in bin/setup

File.exists? is deprecated in Ruby 2.1+

https://github.com/ruby/ruby/blob/v2_1_2/file.c#L1413
Add missing colon to internal
Remove unused `initialize_attributes` method

This was previously a hook for a special case related to `serialize`,
which has since been removed.
Merge pull request #15473 from sgrif/sg-missing-colon

Add missing colon to internal [ci skip]
Merge pull request #15474 from unixmonkey/master

File.exist? instead of File.exists? in bin/setup
Fix typo in ActionController Overview

* Should say "sensitive" instead of "sensible"
Merge pull request #15477 from aripollak/actioncontroller-overview-typo

Fix typo in ActionController Overview
concat is a hotspot (via AV#append=), so just directly define the methods
Merge pull request #15475 from sgrif/sg-initialize-attributes

Remove unused `initialize_attributes` method
reduce AS::SafeBuffer allocations

html_escape_interpolated_argument is only used in mutation methods:

  https://github.com/rails/rails/blob/c07d09559ec171e1904b55c7ad7e8c7d586ca51b/activesupport/lib/active_support/core_ext/string/output_safety.rb#L174
  https://github.com/rails/rails/blob/c07d09559ec171e1904b55c7ad7e8c7d586ca51b/activesupport/lib/active_support/core_ext/string/output_safety.rb#L179

The return value doesn't need to be converted to an AS::SafeBuffer since
we know that the current object is an AS::SafeBuffer and will be
mutated, and the return value from html_escape_interpolated_argument
will be thrown away
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`