(PUP-2738) - Refactor FFI memory consumption / usage

~~- Causes 14 test fails with Invalid Memory Object, so might
   be on to something here~~
~~- one of the MemoryPointer auto-free / block style calls has been
   removed from windows/file.rb ... resulting in 28 less failures
   need to investigate further~~
I actually did mean

<pre>
rval = yield REPARSE_DATA_BUFFER.new(reparse_data_buffer_ptr)
</pre>

You need to yield the struct that wraps the MemoryPointer within its block, but you want to capture what the yielded block returned, and return that value from the `get_reparse_point_data` method.