improved util::buffer and util::string
fixed strange linker warning with LLVM

The warning was of the type: „ld: warning: direct access in ____ to
global weak symbol ____ means the weak symbol cannot be overridden at
runtime. This was likely caused by different translation units being
compiled with different visibility settings.“
tidbits