be really super ultra safe about reprs

don't trust exception strings or class attributes.

adds _safe_getattr, used in a few higher level places to protect against bad objects
test really bad repr