Allow setting attributes and element text with arbitrary objects via .toString()