Introduce a V8PerContextDataHolder

The lifetime of this holder is bound to the lifetime of v8::Context. This resolves a ton of lifetime issues between V8PerContextData and DOMWrapperWorld and allows for using a single embedder data slot instead of multiple slots

This will make it easier to integrate with gin.

BUG=321631
R=marja@chromium.org

Review URL: https://codereview.chromium.org/105503008

git-svn-id: svn://svn.chromium.org/blink/trunk@163426 bbb929c8-8fbe-4397-9dbb-9b2b20218538