improve js-completer logic.

Partial fix to #3653 (from foo import `<tab>`)

Some configurability for Julia
(change the regexp because ! is a valid char in token from them)

--

In notebook you can deactivate tooltip on tab`IPython.config.tooltip_on_tab = false` in js console (shift tab still request tooltip). Then doing a `from numpy import <tab>` should work.