Use more specific specifiers for in/out buffers

Ruby's FFI library has a generic `pointer` type, but it also allows you
to specify buffers that are input-only, output-only, or both. These
supposedly perform faster. For the sake of this, plus better
self-documentation, all `pointer` types have been converted to the
more-specific type of buffer expected.