Well we still need the `MakeWeak` magic, because the destructor isn't called until `WeakCallback` calls `delete wrap`, otherwise we'll leak because we don't know when the vm is done with it.

Aside from `Ref` and `Unref` (and my own personal feelings about the pattern) I still think `ObjectWrap` is a useful abstraction