Change the control visibility by using css class

Instead of changing the button opacity in the control, only add/remove
a css class (ol-hidden). This let the developer easily change the
behavior by updating the css.
Merge pull request #2717 from fredj/rotate-css

Change the control visibility by using css class
Consistent circle transform

Depending on compilation flags, applying a transform used to either:
- work;
- fail throwing an abstract method not implemented message;
- fail silently.

Now it should consistently work, like the other geometries.

Adding a polygon factory method creating an approximation of a circle on
a plane would be useful for users wanting the circle to be deformed.
It would be similar to the `circular` function which creates an
approximation of a circle on a sphere.
Merge pull request #2696 from gberaudo/consistent_circle_transform

Consistent circle transform.
Add ol.extent.forEachCorner
Add ol.extent.containsXY
Add ol.geom.flat.segments.forEach
Add ol.geom.flat.contains.linearRingContainsExtent
Add ol.geom.flat.intersectsextent

Includes functions for testing if an extent and a geometry intersect.
Add ol.geom.Geometry#intersectsExtent (abstract method)
Add ol.geom.Point#intersectsExtent
Add ol.geom.MultiPoint#intersectsExtent
Add ol.geom.Polygon#intersectsExtent
Add ol.geom.MultiPolygon#intersectsExtent
Add ol.geom.LineString#intersectsExtent
Add ol.geom.MultiLineString#intersectsExtent
Add ol.geom.GeometryCollection#intersectsExtent
Add ol.source.Vector#forEachFeatureIntersectingExtent
Add a box feature selection example