Be more strict with types
Factor out ol.webgl.Context
Track current program in context, rather than renderers
Rename ol.renderer.Layer#renderFrame to prepareFrame
Add and use ol.renderer.webgl.Layer#composeFrame
Factor out layersToDraw
Add and use ol.renderer.canvas.Layer#composeFrame