Emscripten webgl context

Implements a HTML5 API for creating WebGL contexts. Adds support for creating multiple GL contexts on different canvases. So far tested that `browser` test suite passes.