Cargoify Skia
Put includes in OUT_DIR
Run make from Cargo with -j4
Add deps for android
Cargo makefile update
Add shared GL contexts to Skia.

This adds supprot for the mac. Linux and windows support may require changes
to the the class definition.

Add native shared gl contexts.
Remove some debugging.
Remove AutoContextRestore.
Add linux support to Skia build.
Destroy framebuffers, textures and renderbuffers when the context dies.
Fix shared GL context destructor to free correct texture.
Add a function to steal the GL texture
Duplicate texture stealing code from mac for unix.
Add extra field to SkNativeSharedGLContext ctor.

This field is used to pass in a shared `Display*` on linux to avoid driver
bugs with shared contexts.
add native shared gl context to android
add stealTextureId to SharedGLContext of android
Call glXMakeCurrent from SkNativeSharedGLContext destructor

Servo will destroy DrawTargets from multiple threads, and OpenGL calls will
crash unless we call glXMakeCurrent first.

(I've confirmed that this is still needed on the CPU rendering branch.)
Fix memory leak from bad refcounting

We created the GrContext, with initial refcount = 1, so we can retain it in
SkNativeSharedGLContext without calling AddRef.
Stop using shared GL contexts. Instead, use native OS surfaces.
Destroy GL resources upon theft of the surface.

We need the GLX pixmap to stay around long enough to destroy the
resources, and the GLX pixmap is now destroyed when the pixmap is
stolen.

In the future we will want to keep around the draw target and
associate it with the pixmap ID so that we can quickly reobtain the
resources.