An aggressive completer

These PR contains commits from the other one I sent. If this cause any trouble please comment and I would like to rebase.

Features:

* complete on `show use help dbs`
* complete on `db.method`
* complete on `db.collection.method`
* complete after `, = ()` on JavaScript global functions
* complete varable based on capturing inputing `variable =`
* complete dbs names based on output that contains `/\dGB/`
* complete collection names based on last output that look like collection
* force rewrite `db.collection.method` to `db.collection.method()`

I'm not sure if all of them are good to merge. But it should be better than we don't have auto-completion.