Reland "EGL: Refactor multifile blobcache"

This reverts commit 437354181694798af24038dd65455eeab06a329e.

Previous CL was reverted due to boot time regressions.

Main change from previous CL is removal of thread.join() if
the thread was not initialized.  This was happening at boot
because a number of processes try to use the cache without
providing a location for the cache.  In that case, both old
and new cache will not initialize.

Test: Boot (quickly)
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: Ib9add1c8342278a46c2e629c919719f973f8c612
9 files changed