Add support for optional_argument to our own getopt_long() implementation.
  07c8651dd91d5a currently causes compilation errors on mscv (and
 probably some other) compilers because our getopt_long()
 implementation doesn't have support for optional_argument. 
 Thus implement optional_argument in our fallback implemenation. It's
 quite possibly also useful in other cases. 
 Arguably this needs a configure check for optional_argument, but it
 has existed pretty much since getopt_long() was introduced and thus
 doesn't seem worth the configure runtime. 
 Normally I'd would not push a patch this fast, but this allows msvc to
 build again and has low risk as only optional_argument behaviour has
 changed. 
 Author: Michael Paquier and Andres Freund 
 Discussion: CAB7nPqS5VeedSCxrK=QouokbawgGKLpyc1Q++RRFCa_sjcSVrg@mail.gmail.com