Infinite loop on icon loading

An infinite loop occurs if the style function returns a new icon style on each call. E.g.

```js
var styleFunction = function(feature, resolution) {
  return [new ol.style.Style({
    image: new ol.style.Icon({
      src: feature.get('iconSrc')
    })
  })];
};
```

The infinite loop occurs because the renderer only sees non-loaded icons.

The bug was [reported](https://groups.google.com/d/msg/ol3-dev/QZ3KjOX_93k/07b1MGn5CU0J) on the mailing list.

As pointed by @twpayne a potential fix involves introducing a cache of images.