Fixed a regression introduced in 84cf156

84cf156 (PR #15694) introduced a subtle regression. There are actually three
distinct entry points to creating an AR object – via .new (i.e. #initialize),
via #init_with (e.g. from YAML or database queries) and via .allocate.

With the patch in 84cf156, attribute methods and respond_to? will not work
correctly when objects are allocated directly, without going through either

The reason this test case didn't catch the regression was that the `Topic`
class is shared between test cases, so by the time this test case is ran the
attribute methods are very likely to be defined.

Switching to use a fresh anonymous class in the test to ensure we surface this
problem in the future.
Move to_param to to_query, also Improve tests
Dont swallow errors when bad alias_method
remove Set.new from DetailsKey::get, impacts rendering overhead performance

Using ruby-prof, I noticed that Set#add had the largest 'self time'
percentage (5% of the overall time spent rendering) when
benchmarking the rendering of a small cached ERB template that was 3
lines long. It turns out it was from this line. I don't believe the
Set is necessary, either. Removing this line increases the rendering
ips using Benchmark::ips accordingly.
remove unneeded test model for ActiveModel test cases.
Stop using mocha on app_rails_loader_test
Stop using mocha on configuration_test
Set the application logger using configuration
Stop using mocha on console_test
Add link to minitest rdoc & github
Treat invalid uuid as nil
Implement required #encode_with

While running the spec `ARCONN=mysql2 ruby -v -Itest
test/cases/yaml_serialization_test.rb`
the following warning shows up:
`implementing to_yaml is deprecated, please implement "encode_with"`
Move #encode_with to Relation
Stop using mocha on dbconsole_test
Fix rational to decimal on type_cast_from_user
Change class evaluation for Rationals in cast_value
we intend to keep the `capture` helper for Active Record tests.

This is a follow up to f8f5cdc
Fix case statement to use ::Numeric and ::String
[ci skip] Use appropriate mailer syntax.

Reference: https://github.com/rails/rails/commit/f7e4362011ceb1317fd401125d48d7ccb9a1079c
[ci skip] Remove duplicated last! section.

Reference: https://github.com/rails/rails/commit/d4fd0bd17709735ac91e434c94fe99429f078c6e

cc @schneems