Return struct by pointer for callback

When have a callback which returns struct
```c
typedef struct S {
 const struct S* (*cb)(const struct S*p);
}
```
it was generated as
```ruby
class S < FFI::Struct
  layout(
    :cb, callback([ :pointer ], S.by_value)
  )
end
```

but it's actually a pointer to struct, not by value.
with this PR it will be
```ruby
class S < FFI::Struct
  layout(
    :cb, callback([ :pointer ], S.ptr)
  )
end
```