Add missing Canvas2DRenderingContext.restore() call

When this code is used in QtWebKit (and possibly other implementations), calling ctx.save() without a corresponding ctx.restore() call results in a resource leak internally.

This manifests itself as 'QPainter::end: Painter ended with N saved states' warnings and continually increasing memory usage.