Color is no longer Cloneable

This is useless since Color is immutable.
Optimize performance of Transform.map operations

When Transform.map happens on the identity transform no points are
transformed. In that case the input shape is simply returned unchanged.
Add transform to Path.

The transform object does not modify the points of the Path. However, each method transforms the points on the fly. This means that, from the outside, the consumer always sees a transformed view of the path. You can ask for the untransformed Path by calling path.untransformed(). Certain operations have a fast version for untransformed paths.