Make new WebUSB implementation more resilient to garbage collection.

This patch fixes a couple logic errors on USBDevice cleanup: assuming
the contextDestroyed() was already called and not clearing the request
list on connection failure.

We then attempt to fix the failures reported in issue 605487 by using
WeakPersistenThisPointer when registering the connection error
callbacks.

BUG=605487

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

Cr-Commit-Position: refs/heads/master@{#389610}
7 files changed