Populates candidates with a list of possible completions for the command line.
The list of candidates will be sorted and filtered by the LineReader, so that
the list of candidates displayed to the user will usually be smaller than
the list given by the completer. Thus it is not necessary for the completer
to do any matching based on the current buffer. On the contrary, in order
for the typo matcher to work, all possible candidates for the word being
completed should be returned.