More convenient geometry transforms

What this does:

 * Renames `ol.geom.Geometry#transform` to `ol.geom.Geometry#applyTransform` (longer name, less frequently accessed by users).
 * Adds `ol.geom.Geometry#transform` that takes `ol.ProjectionLike` arguments (in line with `ol.proj.transform`).
 * Adds tests for old and new methods (giving us more confidence when making future changes).

As a consequence, `ol.geom.Geometry` requires `ol.proj`.  Previously, `ol.proj` transitively required `ol.geom.Geometry`.  I've undone this dependency by making a static method on `ol.geom.Polygon` for creating polygons that approximate a circle on a sphere (see 1110da37e1a080bbfdd60bd2da9d3bd380dfdf98).

In addition, I renamed `ol.extent.transform` to `ol.extent.applyTransform` (to make it more consistent with `ol.proj.transform` and `ol.geom.Geometry#applyTransform`).  However, we cannot add an `ol.extent.transform` method that takes `ol.ProjectionLike` arguments without introducing another circular dependency.  Instead, we could add an `ol.proj.transformExtent` function that worked with extents and CRS identifiers.  I haven't done that here and could remove 015aab8af34a6a1c57aa3e659b12dceeaa712315 if others disagree with this change.

Fixes #2034.