Patterns are recreated every time they paint
This is is a possible perf regression from the previous behavior where patterns were cached based on CTM over in the Canvas2dGraphicsContext object. Now that they're over on GraphicsContext we don't have a similar system for caching (yet). This bug is about building one so that we aren't recreating patterns every time we draw them.

Btw, one way to solve this would be to simply roll out r35966, but given that we've had no complaints of poor canvas pattern drawing performance, and no performance tests to validate that we've actually regressed, I recommend we leave this code in for now.

The way to typically observe pattern performance issues is with large JPEGs as the pattern tile. This is how we noticed perf issues with creation/throwing stuff away in background tiling patterns in HTML.