fix handling of "--" with getopt_long argv permutation

if argv permutation is used, the option terminator "--" should be
moved before any skipped non-option arguments rather than being left
in the argv tail where the caller will see and interpret it.
simplify getopt_long argv permutation loop logic