Cache warmup

This PR introduces Interface change (new method collect) and, therefore, major version should be bumped if accepted.

It resolves problem https://github.com/RWOverdijk/AssetManager/issues/40 and it's a set forward solving https://github.com/RWOverdijk/AssetManager/issues/131

Please let me know if you have any concerns. 
`if (!isset() || !isset()) {continue;}`

Less indentation. Also, I'd use `empty()` as that will work in one go. So:

`if (empty($config['options']['dir'])) { continue; }`