Abstract away more details of shaders into structs

This allows RenderContext to not care about more details of programs in
preparation for supporting more varieties.
Add support for showing debug borders

These borders show the edges of layers and tiles, to aid in debugging
the layer tree.
Merge pull request #89 from mrobinson/debug-borders

Cleanup shaders in rendergl.rs and add support for debugging borders