Limit deprecation output for non-generated messages

Addresses #1070 using value objects that implement `to_s` and `too_many_warnings_message` as hash keys for identifying similar deprecations.