[Fix #199] Fix type error when completing with IDO

IDO doesn't accept the obarray as parameter. It wants a list, so let's
build the list of candidates in advance, and pass it alike to all three
systems.