bstr: add bstr_xappend function

Apparently this can be really useful when being paranoid and trying to
avoid too much malloc/realloc, since it can be used to appending into a
buffer (with transparent realloc only if the buffer is too small).
common: simplify and optimize string escape parsing

This code is shared between input.conf parser and option parser. Until
now, the performance didn't really matter. But I want to use this code
for JSON parsing too, and since JSON will have to be parsed a lot, it
should probably try to avoid realloc'ing too much.

This commit moves parsing of C-style escaped strings into a common
function, and allows using it in a way realloc can be completely
avoided, if the already allocated buffer is large enough.
osd_libass: use bstr_xappend()

Partially, just enough to drop mp_append_utf8_buffer().
input: use bstr_xappend()

To get rid of mp_append_utf8_buffer().
bstr: use mp_append_utf8_bstr()

Drop usage of the ugly PUT_UTF8() macro.
common: drop mp_append_utf8_buffer()
manpage: fix vf_noise parameter name