(PUP-2738) Puppet::Util::Windows::File FFI cleanup
- Break resolve_symlink into an additional helper to simplify memory usage / cleanup. Each time an FFI::MemoryPointer is encountered, it's cleaned up immediately after use. Structure code to ensure that a REPARSE_DATA_BUFFER is returned from resolve_symlink rather than a FFI::MemoryPointer
- Ensure that Puppet::Util::Windows::File.resolve_symlink return value is given default, and closed on inside block to prevent incorrect return value.