Rewrite lift#complete() to fix handling g:lift#max_items

Previously, when g:lift#annotate_sources was disabled, tracking the count of
how many completion results were already returned was not done, effectively
ignoring any values of g:lift#max_items. Also, the rewrite checks with
complete_check() more thoroughly instead of only the results of each source
are returned un full. It should be much less likely for Vim/NeoVim to have
their UI frozen while completing after this change.