EGL: Refactor multifile blobcache

After more testing, it became apparent that we need to
avoid accessing the filesystem to have decent speed.

This CL does that by:
* Moving the multifile cache to a class
* Tracking all entries in a bookkeeping system
* Remove use of STL for read/write
* Keep recent entries in a hot cache
* Deferring file writes to a worker thread
* Allowing devices to opt in via config

For more data and details on the design philosophy:
go/improving-multifile-blobcache-speed

Also added a new sequence of tests that bypass EGL
and directly invoke the mulfifile cache.

Test: pubg_mobile_launch ANGLE trace
Test: /data/nativetest64/EGL_test/EGL_test
Test: /data/nativetest64/libEGL_test/libEGL_test
Bug: b/266725576
Change-Id: Ia19147522a6f68f05fbe47c1545e4c9d69e513c6
9 files changed