Add multiple destruction callbacks to AndroidOverlay.

Rather than specify a single destruction callback in the config,
this CL replace it with AndroidOverlay::AddDestructionCallback().
Multiple callbacks are called starting with the most recently
registered.  This allows multiple interested parties to find out
when an overlay is destroyed.

Additionally, AndroidVideoSurfaceChooser no longer provides a 'stop
using overlay immediately' callback, since it was just aliased to
a destruction callback anyway from the overlay.  Instead, the client
may AddDestructionCallback, if desired, to find out about overlay
destruction when an overlay is provided by the chooser.

BUG=722933
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2883913003
Cr-Commit-Position: refs/heads/master@{#472529}
13 files changed