SuperTabCodeComplete: handle dict return value from Func

If the first function in the chain returns a dict, instead of just a
list of words, look at (the length of) results.words.

NOTE: if results.refresh is set to "always" (as with YouCompleteMe), we
might want to return the empty list anyway, which would allow the
function to stay in the loop.

> || (has_key(results, 'refresh') && results.refresh == 'always')
You need to first check the type of `results`. If it is a list, this call will error:

    :call has_key([], 'words')
    E715: Dictionary required