More gfx tests

This adds three failing tests and fixes one of them (by taking x, y, width, height into account in contextToRgbData).
Yes, my goal is to achieve correctness and then improve performance. Note that this change improves performance compared to the old implementation because it doesn't read back the entire canvas but just the needed area.