• Implement new WebGL interfaces and methods

    This commit implements:
    * WebGLFramebuffer
    * WebGLRenderbuffer
    * WebGLTexture
    
    And adds the following methods to `WebGLRenderingContext`:
    * create{Texture,Framebuffer,Renderbuffer}
    * bind{Texture,Framebuffer,Renderbuffer}
    * destroy{Buffer,Texture,Framebuffer,Renderbuffer}
    
    Fixes:
    * WebGLUniform location shouldn't inherit from WebGLObject.
    
    Known Issues:
    * WebGL objects have to be destroyed on drop, we may want to keep a reference to the context, or maybe a clone of the renderer to achieve this
    
    Also refactors a huge part of the current implementation, to allow
    failing on creation of different WebGL objects.
    
    Blocked on servo/gleam#22
    
    A reftest for most of the added functionality is not doable right now,
    we need a few more functions in order to upload a texture, for example.
    emilio committed Jun 6, 2015