Extend trace messages for destroy/truncated reasons.
This patch extends Neel's work on log messages for !191 (merged).
It makes sense to put the method for human-readable strings onto the
DestroyReason
type itself, so that we can format these whenever they occur.
I'm choosing the "human_str" method name here, since caret-generated types already have a to_str. I'm not 100% attached to that name, though. I was thinking about using Display, but caret types already implement that.
I've also moved the message from "warn!" to "debug!", since these aren't necessarily a problem condition.