Don't require template parameters on templated class name

So name_cpp is std::pair, not std::pair<T1, T2> - this avoids a
situation where different names might be given for the template
parameters.  It also now means that the names used in the yaml
have no connection at all to the C++ code, so the names can be
purely R names.