Android StreamTexture SharedImage path

This path refactors Android's StreamTexture* based video path to use
SharedImages. This consists of two main parts:

1. Remove all GL code from StreamTextureFactory/StreamTextureWrapper,
   allowing the client code to be independent of graphics API. As part
   of this the logic around StreamTextures was moved to GpuChannelHost,
   and no longer requires a GLES2 command buffer.
2. Allocate a new SharedImage each time the video size changes,
   allowing the SharedImages to have an immutable size. Also refactors
   the SharedImage creation code to have better synchronization logic.

Bug: 938149
Change-Id: Ib9ccc102f348b0c8ea9303875f67caaf0702e421
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1616526
Commit-Queue: Eric Karl <ericrk@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: vikas soni <vikassoni@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#672738}
29 files changed