Keep AudioHandlers alive until they can be safely deleted.

When an AudioNode is disposed, the handler is also disposed.  But add
the handler to the orphan list so that the handler stays alive until
the context can safely delete it.  If we don't do this, the handler
may get deleted while the audio thread is processing the handler (due
to, say, channel count changes and such).

Because of this change, handlers don't go away immediately in an
offline context.  The handlers will only go away when rendering is
started or when the context itself is GCed.  Update
cycle-connection-gc.html test to start rendering.  And add a new test,
cycle-connection-gc-render.html, to verify that the handlers are
collected when the context is collected.

Bug: 780919
Test: cycle-connection-gc.html, cycle-connection-gc-render.html
Change-Id: Ibb7c46d5727ddb9f8dec4c48cb5cfebebb4144b3
Reviewed-on: https://chromium-review.googlesource.com/858230
Commit-Queue: Raymond Toy <rtoy@chromium.org>
Reviewed-by: Hongchan Choi <hongchan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528406}
4 files changed