Function pointers with pointer return types don't get wrapped properly
Example:
```c
typedef char *(*my_func_pointer_t)(int x);
```
gets wrapped as:
```nim
type my_func_pointer_t* = proc (x: cint): cchar
```
The return type should be `cstring`:
```nim
type my_func_pointer_t* = proc (x: cint): cstring
```
The same happens with other types, eg. `void *` becomes no return type.