Bring type casting behavior of hstore/json in line with serialized

`@raw_attributes` should not contain the type-cast, mutable version of
the value.
Use a frozen Set instance for CGI_VARIABLES.

Also expand the CGI_VARIABLE name listing to multiple lines for cleaner diffs and legibility.
Merge pull request #15540 from nbibler/http-headers-set

Use a frozen Set instance for CGI_VARIABLES.
Merge pull request #15503 from sgrif/sg-json-hstore-storage

Bring type casting behavior of hstore/json in line with serialized
serialized Type should delegate `type_cast_for_write` to underlying Type

This adds a regression test for #14411, which was fixed by #15503.

Closes #14411
Closes #14595
test refactor, don't hardcode `primary_key_prefix_type` default.

/cc @zuhao
test refactor, don't hardcode default for `table_name_prefix`.
`ActiveRecord::SchemaMigration` has no primary key.

Before this patch, using `ActiveRecord::Base.primary_key_prefix_type`
with `:table_name_with_underscore` would change the `SchemaMigration` model
to have a primary key. This resulted in broken queries for PG because it tried
to return the inserted PK (which does not exist).

Closes #15051.
Closes #15419.
credit JoseLuis Torres for #15051. [JoseLuis Torres]

[ci skip]
remove rubyforge.org that was shut down [ci skip]