vm: Fix memory leak and remove useless ObjectWrap.

Fixes #6115.

The first commit removes some unnecessarily-confusing vestigial `ObjectWrap` stuff that likely wasn't helping memory *usage* any. The second commit uses `MakeWeak` to fix the memory *leak* created by `SetHiddenValue`.