Improve '--' handling

If there are a double dash in the `args`, we can just throw away
following arguments and push them directly to `argv._`. This allows us
to remove any checks for `--` from the following code therefore making
it more mistake-proof.

These arguments are stored in a temporary array and pushed after
processing the rest - to ensure argument order won't change.