Make lift#complete() return <C-n> when menu is visible

This matches the default behavior of Vim when autocompleting, which is
better to have as it will be more predictable to users.
Do not add annotation separator when "menu" key exists but empty
Always call all completion functions with findstart=1

Some completion functions may preinitialize data when called with
findstart=1, so we need to call them all instead of skipping the
rest when at least one returns >0.

Also, cache the names of the sources which provide a >0 result when
using findstart=1 in a per-buffer variable, and then only query
thise when lift#complete() is called with findstart=0.