vm: remove useless ObjectWrap, fix memory leak, prevent double-contextifying.

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`.

EDIT: The third commit fixes the memory *leak* created by doubly-contextifying a sandbox, i.e. calling `vm.createContext(sandbox); vm.createContext(sandbox)`. (See @bnoordhuis's comments below.) If you try to contextify an already-contextified sandbox, it simply does nothing. I am open to making it throw too if people like that better.