Different approach for optional event usage in cache providers

This is alternative approach for code suggested in #14. This approach adds optional dependency on Symfony EventDispatcher component.