(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~~
Same comment about `LocalJumpError` still getting thrown.  We don't need to work with the `Proc` wrapper at all, so it's optional.

http://stackoverflow.com/a/2222682