bstr: nuke in favor of own implementation
bstr was copy/pasted from the LGPLv2.1+ licensed mpv, with a long and complex history. Get rid of this entire history by reimplementing our own string helpers from scratch.
Code that was authored by me (for mpv) was copy/pasted, the rest was
re-engineered. There are some differences in behaviour here and there,
but they should't matter for libplacebo. Some functions should be more
efficient as a result, too. In general, we also have less special cases
to worry about, due to not reimplementing bstr_splice
and friends.
Some APIs were obviously loosely inspired/copied from bstr (e.g. the xappend stuff), but I don't think APIs themselves are sufficiently copyrightable. Besides, many of them are just taken from the C string APIs anyways.
cf. #124 (closed)