Feature elinux programmable gl

merges latest changes to the gles2 branch (now compatible with gl3 thanks to @tgfrerer) and latest from develop

haven't tested yet so might be good to give it a try before merging, i'll try it later.