Interchangeable ConfigCache
(cherry picked from commit 7e0a41702f471185f4dbc92405f0e8594e48fcb8)
Blank Lines
(cherry picked from commit ca7b47b46f4d37899413814751993b54e6fa565b)
Use a common ConfigCacheFactory service
(cherry picked from commit 661a12b2ca5059c3aaef4f0a1ed3fac6e11bb9dc)
Whitespace fix
(cherry picked from commit 60cd954597c57aa0b8899b5097e38d4802b1582c)
Got the whitespace fix wrong :(
(cherry picked from commit c682760c42d25838ed31a097c094a0d08bcc2abf)
Remove service definition and references for config.config_cache_factory altogether, as Router and Translator will still fall back to old behaviour (BC).
(cherry picked from commit e824e42fc78b60a271d22d44b20fa23c337dffcd)
Forgot one reference
(cherry picked from commit 35be6659bf6557e177885d8f15fb60e1ce047d64)
Remove unused parameters
(cherry picked from commit 538656232eebe13842e3418e391b6f1a15bdbf39)
Move initial cache fill to the ConfigCacheFactory as well.

It is a common pattern for clients of ConfigCache/ConfigCacheFactory to check whether the cache is fresh and if not, fill it. This removes a little bit of repeated code.
Additionally, it gives factory implementations more control over how the cache is written to (for example they can employ other file locking/atomic write strategies).
(cherry picked from commit 2958fdc53d9b4e26e80032a267433d11afd62cbc)
Basic rework of the ConfigCache and ResourceInterface as outlined in #7176.
(cherry picked from commit aea680a2a9b604550e8f419997a3d7fbed9568e0)
Fixups as suggested on GH.
(cherry picked from commit fe2bce7c46fdeb4c03fd730b64ff386fdaf6decf)
Fix CS violations and scrutinizer feedback
(cherry picked from commit dc890b62456390b7e6b5a5f439480dbafacfd802)
Even more scrutinizer feedback
(cherry picked from commit 191bc27c4aa3b877b71b5ea975bd435151f93231)
Renamed the method to comply with CS; it is named like that in Router.php already.
(cherry picked from commit f27937cdea372105c0300cace0fedfc815b8eebf)
whitespace fix
(cherry picked from commit 925c1c462aee9b1c91da2da9bb35e729c87aab93)
Use a hash-based approach for detecting changes in directory structures.

That way, we can get consistent results even when files not matching a pattern are added or removed. A change to the directory alone won't change the hash.
(cherry picked from commit 3a6eb572ed3a650f7382cf32bd79b5d490aeb0d7)
Re-use code we already got
(cherry picked from commit 7f8166bb33777e2cf0da11db67e10d691665cfa7)
Renamed the two currently available cache implementations
(cherry picked from commit 4f136d2e615f741928431792d8cecd42b5bc869d)
Added abstract base class for factories, plan to use it for a FrameworkBundle specific factory
(cherry picked from commit b6e31aea3dabd3c99a69857bc70d0102210838b6)
Intention revealing names
(cherry picked from commit aaf35d4aee0a045461127b8dc97e93482a8f7568)