Now, given template <typename T> foo() {} when user types fo^<int>() the
completion snippet will not contain <int>().
Also, when the next token is opening parenthesis (() and completion snippet
contains template argument list, it is still emitted.
This patch complements D81380.
Related issue: https://github.com/clangd/clangd/issues/387
what if we have ( in the template parameter list ? i think we need to literally find the matching > and include all the text in between instead.