Implement a method `transform_rect` that transforms a rectangle and returns its bounding rect.

Because it returns the bounding rect, this is well-defined for rotations
and skew. This is useful for creating temporary draw targets.

r? @glennw
This doesn't take account of m12 (you've got m21 duplicated.)