(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~~
Yup, got it... though I don't think we actually want to capture / return the value here.  That block of memory has been freed by the time the code after the block is reached, so we want to return `nil` I believe.