Deprecate decimal columns being automatically treated as integers

With ActiveRecord::Properties, we now have a reasonable path for users
to continue to keep this behavior if they want it. This is an edge case
that has added a lot of complexity to the code base.
Merge pull request #15359 from kuldeepaggarwal/f-remove-unwanted_to_sym

remove unwanted `to_sym` call.
Merge pull request #15358 from arthurnn/redefine_habtm_fix

Fix redefine a has_and_belongs_to_many inside inherited class
Speed-up TimeWithZone to String conversion

I've noticed that `String(model.created_at)` is performing poorly in comparision
with other fields. The source of the problem is a way `Kernel#String` works: it first
tries to call `to_str` (which causes `NoMethodError` in `method_missing`) and then calls `to_s`.

Performance tests:

    tz = Time.zone.now

    Benchmark.ips do |x|
      x.report { String(tz) }
    end

Without this code:

    Calculating -------------------------------------
                               572 i/100ms
    -------------------------------------------------
                            10177.7 (±18.2%) i/s -      48620 in   5.000325s

With this code:

    Calculating -------------------------------------
                              1518 i/100ms
    -------------------------------------------------
                           138984.2 (±10.1%) i/s -     677028 in   4.974897s
rake railties:install:migrations respects the order of railties

This PR fixes #8930 and some stuff from #8985
Merge pull request #15295 from sgrif/sg-deprecate-decimals

Deprecate decimal columns being automatically treated as integers
Merge pull request #14834 from al2o3cr/issue14155

Correctly alias table names when joining more than once
Require active_support at the railties

Railties need to be used without having to require any dependecy first.
Merge pull request #15321 from tgxworld/only_find_routes_as_heads_for_head_request

Call get_routes_as_head only on HEAD requests.
Merge pull request #12080 from ShayDavidson/fix_datetime_partial_dates

Added partial days support to `DateTime`'s `advance` method.
Silence deprecation warning in test

Missed a case that only occured for mysql/mysql2
Merge pull request #15371 from sgrif/sg-silence-deprecation-warning

Silence deprecation warning in test
give all endpoints a superclass
Test Case - Change method name
Merge pull request #15372 from akshay-vishnoi/test-cases

Test Case - Change method name
constraints class does not need the request class anymore
call `serve` with the request on dispatchers
dispatcher doesn't need `call` anymore
move path_parameter encoding check to the request object
rm reset_parameters because we automatically do it from 9ca4839a