Introduce hasFeatureAtPixel

This PR is based on #3065.

#3065 implements hit-detection for WebGL, but unfortunately the performance is not good enough to do hit-detection on `mousemove` (if you have many features). This is because we are calling `drawElements` for every feature, which is expensive.

For `mousemove` you are usually not interested in the actual features that `forEachFeatureAtPixel` provides, you just want to know if there is a feature or not, so that you can change the mouse pointer. So in this case you can draw all features at "once" (or to be precise: per texture group) for the hit-detection, and then check if there is a feature or not.

That's why we introduced a `hasFeatureAtPixel` method, which simply returns `true` if there is a feature at the given pixel. For WebGL this function is very fast, for 50000 features it takes less than 20ms (on my system).

Example usage:

    $(map.getViewport()).on('mousemove', function(evt) {
      var pixel = map.getEventPixel(evt.originalEvent);
      var hit = map.hasFeatureAtPixel(pixel);
      map.getTarget().style.cursor = hit ? 'pointer' : '';
    });

Example: [icon-sprite-webgl.html](http://tsauerwein.github.io/ol3/webgl-point-hasFeatureAtPixel/examples/icon-sprite-webgl.html)

```bash
curl --head http://a.tiles.mapbox.com/v3/mapbox.geography-class/0/0/0.png
HTTP/1.1 200 OK
Content-Type: image/png
Content-Length: 22953
Connection: keep-alive
Access-Control-Allow-Methods: GET
Access-Control-Allow-Origin: *
Cache-Control: max-age=300
Date: Fri, 19 Dec 2014 21:56:21 GMT
ETag: "ffe0f064a7bb4cb58c4ec41a120dd6cb"
Last-Modified: Mon, 06 Oct 2014 20:00:00 GMT
Server: nginx
X-Powered-By: Express
Age: 57
X-Cache: Hit from cloudfront
Via: 1.1 28b845ebd2cb03ae79a6a4bb5eae3e76.cloudfront.net (CloudFront)
X-Amz-Cf-Id: xXnIkDQez9at1WM-9Lio5pau7SXU7OKgxQoiMLTb30xCoC-1Wehs2w==
```

How about this instead?
```js
var rasterLayer = new ol.layer.Tile({
  source: new ol.source.TileJSON({
    url: 'http://api.tiles.mapbox.com/v3/mapbox.geography-class.jsonp',
    crossOrigin: ''
  })
});
```