fix bug in nested C++ template syntax

This fixes a bug where Cython would generate expressions like

```c++
f<vector<set<int>>();
```

which are invalid in C++98: the `>>` gets parsed as a single token, so there should be a space in between the closing angle brackets. (C++11 allows this, but GCC compiles in C++98 mode by default.)

Includes a regression test, which fails without the patch to `PyrexTypes.py`.

I ran into this while trying to wrap a [heavily templated C++ library](http://pointclouds.org/).