Revert of Forbid creating new wrapper from SetWrapperReferenceTo (https://codereview.chromium.org/332643003/)

Reason for revert:
There seems to be an existing bug which hits this callpath. Reverting the change until the bug is fixed.

Original issue's description:
> Forbid creating new wrapper from SetWrapperReferenceTo
> 
> SetWrapperReferenceTo IDL attribute is a hack to use V8 wrapper reference
> to avoid reference cycles in Blink. The |visitDOMWrapper| callback is
> used to create a temporary strong reference between the wrappers in GC
> prologue.
> 
> Before this patch, |visitDOMWrapper| was allowed to create a new wrapper
> if the wrapper for target object didn't exist. However this is dangerous,
> as the target object may be already destructed. The target wrapper must
> already exist for this reference hack to work correctly.
> 
> This patch forbids creating a new wrapper from |visitDOMWrapper| callback,
> and adds an ASSERT that checks that the target object wrapper already
> exists.
> 
> BUG=None
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=175998

TBR=nbarth@chromium.org,haraken@chromium.org
BUG=384459

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

git-svn-id: svn://svn.chromium.org/blink/trunk@176281 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Don't assert when ServiceWorker::from is passed an empty promise

If the document gets detached before Service Worker registration
completes, the CallbackPromiseAdapter promise gets cleared. Then when
registration completes, ServiceWorker::from is passed the resolver with
the empty promise. Before this patch, an assert would then occur because
ScriptPromise::then bails before adopting its fulfilled/rejected
arguments. This patch fixes an overly aggressive assert in
V8GarbageCollected and also makes ServiceWorker creation skip waiting
on an empty promise.

BUG=384498

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

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