multiplatform: app.h selects platform-specific implementation
multiplatform: add GL3.3/GLES3.0 platform implementation

This breaks the existing API a bit, adding an InputConfig object
which both owns the VAO and when to change that state as well as
manages (inefficiently for now) the GL Program object
test: trivial test program
textgrid and hello: update for new API and provide glsl shaders
multiplatform: linux makefile for hello and test