argtextobj.vim: Added "intelligent" bracket parser to support `<>`.

With the new parser `<` and `>` brackets are now considered to have an
argument list. This is particularly useful for C++ templates.
The new parser recognises cases like `foo(x << 20)` or
`bar(x > 10 ? 8 : 11)` and `vector<pair<int, double>>`. It is however
difficult to parse cases like `foo(x < a, b > c)`.