Issue 7942 - Appending different string types corrupts memory

This adds the runtime functions necessary to append any string type to any other string type.

The performance is probably not ideal but is also not a priority as the current situation causes memory corruption.

https://issues.dlang.org/show_bug.cgi?id=7942
Why `byte[]`?