Call va_start correctly

The va_start macro needs to take the last named function parameter,
not NULL. From `man 3 va_start`:

     The parameter last is the name of the last parameter before the
     variable argument list, i.e., the last parameter of which the
     calling function knows the type.

Fixes the other issues from #1