Handle returned dictionaries from completion functions

When invoking completion functions, a dictionary may be returned to be
able to set the { 'refresh': 'always' } option. This patch converts the
dictionaries back into lists, to not break iteration over the completion
results, and tracks the 'refresh' flag, which is part of the result of
lift#complete().