fix `Buf.new ~ (Any)` and similar

Using string operations like concat on a Buf (utf8,Blob8,...) and something that is not
a Buf:D failed by eating all your memory. Now we convert the buffer types to strings when
we know how, and fail otherwise.
This is meant to fix RT #122600 and RT #122827.