completion: rework cmdType and Completers.filter
completion: rework cmdType and Completers.filter

cmdType: -> queryType
* 0: no offset
* 1: has offset, waiting to do something
* 2: offset is used by search engine completer
* 3: used by history completer
* 4: used by tabs completer
* -1: the last is only '+', so stop filtering process

search engine completer: filter => preFilter
* preFilter is called before `[i].filter(query) for i in completers`

Completers.getOffset:
* called only once after calling `preFilter`

gdh1995/vimium-plus,gdh1995/vimium-plus,gdh1995/vimium-plus