Rename transform to applyTransform for geometries
Add tests for geometry applyTransform method
Rename ol.extent.transform to ol.extent.applyTransform

This gives more consistency with ol.proj.applyTransform, allowing us to add a more convenient ol.extent.transform method that takes projection-like arguments.
Move ol.Sphere#circle to ol.geom.Polygon.circular

Previously, ol.geom.Polygon was a transitive dependency of ol.proj (since ol.proj requires ol.sphere.NORMAL, and all spheres were capable of generating circular polygons).  Instead, ol.proj should be lower-level.  Since it deals only with coordinate arrays, it shouldn't depend on all of the geometry code.

By adding a static `circular` function to `ol.geom.Polygon`, the dependency tree makes more sense.  If you want to create a polygon that approximates a circle on a sphere, you require `ol.geom.Polygon` and `ol.Sphere` (or one of the constants).

This makes room for geometries to have a `transform` method that takes projection-like arguments (meaning that `ol.geom.Geometry` will require `ol.proj`).
Add a transform method to geometries

This accepts CRS identifiers for source and destination, transforms the geometry in place, and returns a reference to the geometry.
Mark applyTransform as part of the API for all geometries
Merge pull request #2036 from tschaub/transform

More convenient geometry transforms.