Use complete_add()/complete_check() incrementally

Provide completion results incrementally using complete_add().
Also, abort completion search when needed using complete_check().
This improves interactivity and perceived lag for complex completion
engines.