Add C++ template argument expansion

It supports template class such as

```
std::vector<${class _Tp}>
```
and template function such as
```
std::bitset<42> bs;
bs.to_string<${class _CharT}, ${class _Traits}, ${class _Allocator}>()
```

It's working well, but there should be some bug beyond my expect.
If something is wrong with it, please tell me. I'll fix it.