CI sometimes fails with a temporarily corrupted toolchain capabilitiy
database file. Although not proven, there is evidence that CMake's
file(APPEND does not work atomically when there are concurrent writes
and reads of a certain size.
To avoid file appending, we re-write the key-value database
implementation to store keys in filenames and values in individual
single-byte files.
This is (most likely) fixes#9992.
NB: Users that have been overriding the database file location with
the CMake variable ZEPHYR_TOOLCHAIN_CAPABILITY_CACHE must now specify
a directory with the variable ZEPHYR_TOOLCHAIN_CAPABILITY_CACHE_DIR.
Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>