Hit detection refactoring

Get the frame state from the map instead of storing values in the layer renderers.
Add ol.source.Source#forEachDetectedFeature
Add ol.source.ImageVector#forEachDetectedFeature
Add ol.renderer.canvas.ImageLayer#forEachFeature
Add ol.renderer.dom.ImageLayer#forEachFeature
Add ol.renderer.webgl.ImageLayer#forEachFeature
Add hit detection to image-vector-layer example
Better typing