Fix completion things in the Qt console

This addresses part of #6726 - completions on function keyword args and filenames in strings now work again.

It also removes quite a bit of code that existed to lex input code in the frontend and work out what token to send for completion. This is now unnecessary, because we just send the whole input buffer to the kernel and let it work out what to complete.

Ping @jdmarch and @ccordoba12 for Qt console changes. This doesn't affect the API if you use IPythonWidget, but if you have another subclass of FrontendWidget for some reason, you'll want to look at this.