• webgl: Implement multiple calls and improve error detection

    This commit implements WebGL's:
     * cullFace
     * frontFace
     * enable
     * disable
     * depthMask
     * colorMask
     * clearDepth
     * clearStencil
     * depthFunc
     * depthRange
     * hint
     * lineWidth
     * pixelStorei
     * polygonOffset
     * texParameteri
     * texParameterf
     * texImage2D (partially)
    
    It inlines a lot of OpenGL calls to keep the file
    `components/canvas/webgl_paint_task.rs` as small as possible while
    keeping readability.
    
    It also improves error detection on previous calls, and sets node damage
    on the canvas in the drawing calls.
    
    It adds a `TexImage2D` reftest, even though it's not enabled because:
     * WebGL paints the image when it loads (asynchronously), so the reftest doesn't wait for it and it finishes early
     * If we change the source for the base64 src of the image it works as expected in non-headless mode, but the test harness locks
    emilio committed Aug 25, 2015