Fix use_image_texture_target inconsistencies

Currently, LayerTreeSettings::use_image_texture_targets is populated in
the Browser Process based on it's guess about the BufferUsage of buffers
in the Renderer Process. This guess is almost always wrong, as the
Renderer uses multiple BufferUsages in many cases, and as we add support
for more advanced scenarios, this will be wrong more often.

To work around this, this change modifies use_image_texture_targets to
be a map from BufferUsage/BufferFormat to texture target, rather than
just from BufferFormat. This allows the renderer to query for the
correct target for the usage/format combination it is currently using.

Additionally, this change moves this map from LayerTreeSettings to
RendererSettings, at it is also used in display.cc, which currently just
uses a default-initialized list.

BUG=590317
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_blink_rel

Review-Url: https://codereview.chromium.org/2120713002
Cr-Commit-Position: refs/heads/master@{#407885}
37 files changed