this resolves a UB introduced by D122604
The microsoft demangler demangles string literal contents (sans
quotes), and can therefore demangle the empty string to nothing. With
lazy buffer allocation, this results in a null buffer and consequent
detected UB with a memcpy. However, the fault is earlier, with taking
a StringView of that null buffer. This adds an allocateBuffer member,
to ensure that there is a non-null buffer, even when it is not needed.
A unit test also requires this, as it commences by inserting
no-characters and then checking for an empty string.
An assert is added on theOutputBuffer's conversion to StringView, to
catch future cases.
(My assumption that demangling either failed or always produced at
least one character turned out to be false in this one cases. I do
not know why the Microsoft demangler behaves this way, as it appears
to decorate the demangled strings with quotes before presentation to
the user.)