If the flag is provided several time increase the flag value. This is
a pretty ugly fix for how getopt_long_only() handles '--verbose' vs
'-v'. getopt_long_only() returns 0 when --verbose is used and 'v' for
-v hence we will not usually not take the short option path for
--verbose.
Break out in the short option parsing when non flag options are used.
Another uglyliness here is that it sets up long options differently
depending on short or long version is used. For the short version we
have to use value_addr.