Main MakeWinMsgEv loop now uses wmbc_bytesleft as buffer limit

This will change once all buffer writes can trigger reallocation
Added wmbc_str{,n}cpy and replaced existing refactored strncpy's

All remaining calls in MakeWinMsgEv will be replaced as they are refactored into
their own functions. Until then, they will continue to work as before, but will
not expand the buffer.