refactor to share the shader plugin between vertex and fragment
revert to minimized require
bug fixes for the fact that gl/program uses foo.id not foo.program now