Implement blob cache for passthrough program cache

Prior to this commit, the passthrough program cache used
EGL_ANGLE_program_cache_control to store binary programs in angle's
cache.  With support for EGL_ANDROID_blob_cache added to angle, this
role is reversed, i.e. the blob cache lives in the application (chrome),
with the implementation (angle) storing additional data through
callbacks.

Bug: angleproject:2516
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: I62d5c484580d953013d00e31300285be6b9442ce
Reviewed-on: https://chromium-review.googlesource.com/c/1251325
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596237}
19 files changed