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 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`
Fix regression on eager loading association based on SQL query rather
than existing column.

Fixes #15480.
Add default_i18n_subject to the guides

[ci skip]
Pluralize params
Partially revert deprecation of *_filter

We are going to deprecate only on Rails 5 to make easier plugin
maintainers support different Rails versions. Right now we are only
discouraging their usage.

This reverts commit 6c5f43bab8206747a8591435b2aa0ff7051ad3de.

Conflicts:
	actionpack/CHANGELOG.md
push splitting "to" up the callstack
Convert StrongParameters cache to a hash. This fixes an unbounded
memory leak demonstrated on @tenderlove's latest blog post:

http://tenderlovemaking.com/2014/06/02/yagni-methods-are-killing-me.html
reuse available belongs_to? method

Reflection has a `belongs_to?` method. Instead of checking for
`macro == :belongs_to` throughout the source reuse existing
method.

I also bumped `foreign_key_present?` method onto on line because
the `belongs_to?` makes it shorter than other longer lines in
the same class.
Merge pull request #15499 from eileencodes/reuse-available-belongs_to-method

reuse available belongs_to? method
Merge pull request #15498 from zenspider/fix_memory_leak

Convert StrongParameters cache to a hash. This fixes an unbounded memory leak
Cleaned up duplicated CHANGELOG entry [ci skip]
Change wording of explanation about precision & scale of decimal numbers [ci skip]
Merge pull request #15482 from laurocaetano/fix-regression-for-eager-load

Fix regression on eager loading association based on SQL query rather than existing column.

Conflicts:
	activerecord/CHANGELOG.md
Merge pull request #15500 from prathamesh-sonpatki/change-wording-of-explanation-about-precision-and-scale-of-decimal-numbers

Change wording of explanation about precision & scale of decimal numbers [ci skip]
Use null column for association key types
Collapse PG default extractoin of most types to single regex

For any type that is represented as a string and then type cast, we do
not need separate regular expressions for the various types. No function
will match this regex. User defined types *should* match this, so that
the type object can decide what to do with the value.
Merge pull request #15463 from geopet/refactor_xml_compute_type

Refactor XML serializer to not depend on `serialized_attributes`
Correct result, previously showing wrong result