Provide a nicer `to_s` if no preferred display name is defined

This has been bugging me for a while, and #2880 reminded me that it's still a pain for others. So I wrote some code!

This needs to be able to:

+ handle translation if it's an ActiveRecord model
+ still be able to handle arbitrary objects
+ if all else fails, default back to the Kernel-provided `to_s`