gracefully fail to initialize for older browsers

IE 8 for example doesn't have canvas elements. By moving the request
for the 2D context after the GL initialization we make sure we only
ever request a 2D context for browsers that support WebGL and thus
for for sure support 2D contexts.