A portable, re-entrant replacement for getopt_long().