(breaking) Change CompletingCommandExecutor.complete() to take cursor
instead of argNumber and offset

This is because argNumber (ambigous name btw) becomes invalid after
parsing flags. Before the change executors who use flags have to convert
the pair of numbers to cursor, parse flags, and then convert it back.
This is not straightforward and may be confusing.

After the change the completer will be given raw cursor position which
never becomes invalid (because it doesn't depend on the current index of
CommandArguments). They will call CommandArguments.offsetToArgument()
when they need to know which argument is being attemted to be completed,
and pass the raw cursor everywhere else.
Fix a bug in completion merging causing unwanted closing quotes.

When one completer doesn't have any candidates except a sole closing
quote, and the other one has something else with more context (i.e.
completed relatively to lower cursor position),
CommandArguments.mergeCompletions() should discard the sole closing
quote candidate.

Otherwise, if we for example try complete `"Wolf4` and one completer
knows for sure the completion is `"Wolf480pl"`, and the other completer
doesn't have idea, we'll end up with 2 propositions: `"Wolf480pl"` and
`"Wolf4"`.