remove threading
override default caching; generate snippet list on BufEnter

UltiSnips _snips() method is quite slow and there are not so many
snippets for each filetype, so we can cache all of them on buffer enter
and then filter them. Invalidate cache on buffer change