
NM_STR_BUF_INIT() and nm_str_buf_init() were pretty much redundant. Drop one of them. Usually our pattern is that we don't have functions that return structs. But NM_STR_BUF_INIT() returns a struct, because it's convenient to use with nm_auto_str_buf NMStrBuf strbuf = NM_STR_BUF_INIT(...); So use that variant instead.
libnmc-base
A helper library on top of libnm for our clients. The "c" in "libnmc-base" stands for clients.
This has no additional dependencies on top of libnm, so any client application that uses libnm can statically link with this helper at will.
As such, this is very similar in purpose to ../libnm-client-aux-extern, the difference is only in scope.