Send SharedImage IPC with multi-flush

This generalizes the FlushParams to contain sync tokens + IPC::Message instead
of ad-hoc fields transformed into Messages on the receiving side. This allows
any Message (that doesn't have handles) to be included into the list, and
simplifies the service-side handling.
Existing AsyncFlush and DestroyTransferBuffer messages are now serialized
client-side, and CreateSharedImage/DestroySharedImage are converted to this
mechanism, to avoid extra IPCs per tile.

Bug: 870116
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: Ib11298c03e249f49aec8e710a3db4195aea33e81
Reviewed-on: https://chromium-review.googlesource.com/1168731
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
Commit-Queue: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582412}
14 files changed