Provide a better error message for unsupported classes in `serialize`

We only support classes which provide a no-args constructor to use as a
default value. We can provide a more helpful error message if we catch
this when `serialize` is called, rather than letting it error when you
try to assign the attribute.

Fixes #18224
Provide :touch option to save() to accommodate saving without updating timestamps. [#18202]
Merge pull request #18225 from DanOlson/update-without-changing-timestamps

Provide :touch option to save() to accommodate saving without updating t...
Fix warning: `*' interpreted as argument prefix
Merge pull request #18226 from kamipo/fix_warning_interpreted_as_argument_prefix

Fix warning: `*' interpreted as argument prefix