Changed ActiveRecord::Associations::CollectionProxy#select to take multiple arguments.

This makes the arguments the same as ActiveRecord::QueryMethods::select.
Deprecate unused `symbolized_base_class` and `symbolized_sti_name`.

These methods were only used for the `IdentityMap` which was removed.
They are no longer used internally and should be removed without replacement.

As they were not `:nodoc:`'ed it's better to deprecate them before removal.
Fix documentation for end_year option of date_helper [ci skip]

- While editing an existing record, end_year is equal to current selected year plus 5 by default.
- While editing an existing record, start_year is equal to current selected year value minus 5 by default.
- Fixes #13552

Acked-by: Prathamesh Sonpatki <csonpatki@gmail.com>

Acked-by: Prathamesh Sonpatki <csonpatki@gmail.com>
Building new records with enum scopes now works as expected

Previously, this would give an `ArgumentError`:

   class Issue < ActiveRecord::Base
     enum :status, [:open, :finished]
   end

   Issue.open.build # => ArgumentError: '0' is not a valid status
   Issue.open.create # => ArgumentError: '0' is not a valid status

PR #13542 muted the error, but the issue remains. This commit fixes
the issue by allowing the enum value to be written directly via the
setter:

   Issue.new.status = 0 # This now sets status to :open

Assigning a value directly via the setter like this is not part of the
documented public API, so users should not rely on this behavior.

Closes #13530.
Whitespace [ci skip]
No need to use fixed size font [ci skip]
mem_cache_store requires dalli, so only accept dalli/client

:mem_cache_store require dalli, rescue Dalli exceptions, and follow Dalli API.
Memcached gem, for instance, doesnt work anymore, as the API are different.

As we already require one client, we should make sure that client works, and not accept others, and if someone wants to use another memcache client they can write their own store adapter.
Minor typo fix [ci skip]
Raise if MemCacheStore doenst receive a Dalli obj

:mem_cache_store should receive a list of hosts or a dalli client,
otherwise raise it.
Also adding a changelog.
Change all "can not"s to the correct "cannot".
Add deprecation I accidentally missed
Fix mergefail in changelog

The line was duplicated
Fixed  documentation. [ci skip]
provide correct example of `datetime_select` helper [ci skip]
Add preview_path to autoload_paths in after_initialize

Only config.autoload_paths is frozen, so add the preview_path
to ActiveSupport::Dependencies.autoload_paths directly in an
after_initialize block. Also protect against a blank preview_path
being added to autoload_paths which can cause a serious slowdown
as Dir[] tries to load all *_preview.rb files under /

Fixes #13372
Use a custom route vistor for optimized route generation

Using a Regexp to replace dynamic segments in a path string is fraught
with difficulty and can lead to odd edge cases like #13349. Since we
already have a parsed representation of the path it makes sense to use
that to generate an array of segments that can be used to build an
optimized route's path quickly.

Tests on a simple route (e.g. /posts/:id) show a speedup of 35%:
https://gist.github.com/pixeltrix/8261932

Calculating -------------------------------------
    Current Helper:       5274 i/100ms
    New Helper:           8050 i/100ms
-------------------------------------------------
    Current Helper:     79263.6 (±3.7%) i/s -     395550 in   4.997252s
    New Helper:        153464.5 (±4.9%) i/s -     772800 in   5.047834s

Tests on a more complex route show even an greater performance boost:
https://gist.github.com/pixeltrix/8261957

Calculating -------------------------------------
    Current Helper:       2367 i/100ms
    New Helper:           5382 i/100ms
-------------------------------------------------
    Current Helper:     29506.0 (±3.2%) i/s -     149121 in   5.059294s
    New Helper:         78815.5 (±4.1%) i/s -     398268 in   5.062161s

It also has the added benefit of fixing the edge cases described above.

Fixes #13349
Simplify arg parameterization
Show full route constraints in error message

When an optimized helper fails to generate, show the full route constraints
in the error message. Previously it would only show the contraints that were
required as part of the path.

Fixes #13592
Fix handling of timestamp and datetime columns on PostgreSQL.

Timestamp columns are defined as `timestamp with time zone`,
datetime columns as `timestamp without time zone`. PostgreSQL
converts timestamp values from the local time zone to UTC for
storage and back; datetime values are treated as-is. This is in
line with MySQL.
Auto-generate stable fixture UUIDs on PostgreSQL.
Fixes: #11524