src/libpcp/src/util.c: va_copy() issue in vpmprintf()
src/libpcp/src/util.c: va_copy() issue in vpmprintf()

Coverity reported a problem with va_copy() being used without a
matching va_end().  Nathan proposed a fix, and I agree.

We think the effect is benign because there is no off-stack allocation
in the va_copy() implementations we use on the supported PCP platforms
(this is a bit of a SWAG).

In the process of looking at this, I added some fault-injection points
to test the error paths (one of the places where a va_end() was missing)
and then found a couple of deadlocks!

This commit fixes all of the above.

adfernandes/pcp,adfernandes/pcp,adfernandes/pcp,adfernandes/pcp,adfernandes/pcp,adfernandes/pcp,adfernandes/pcp,adfernandes/pcp