Feature cairo gl backend

Uses cairo to render shapes to a memory surface then shows them in openGL by uploading a texture. It's of course slower than directly render to openGL but you get awesome anti aliasing and properly capped lines

![example](http://arturocastro.net/files/cairoBackend.png)
left is cairo, right is openGL