[media] Reland VdaVideoDecoder

This adds VdaVideoDecoder, an adapter that implements the media::VideoDecoder interface using a
media::VideoDecodeAccelerator. VdaVideoDecoder expects to run in the GPU process, with access
to a command buffer stub, as will be the case for decoders created by MojoVideoDecoder.

VdaVideoDecoder runs on the (mojo) IO thread as much as possible, but the VDA interface is
inherently tied to the GPU thread.

Compared to the original landing (commit e192695db1c49298532a4ca9e872f3430003222f), this change
casts kMaxPlanes to uint32_t before using it as a parameter to DCHECK_LE() in
PictureBufferManager::CreatePictureBuffers().

Bug: 522298
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Ie3e1b346f9b88692bcb2be12434fb0b6b81ef025
Reviewed-on: https://chromium-review.googlesource.com/1012936
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551125}
17 files changed