make bind ref counted to minimize the number of call
divided OpenGL calls by two by caching uniforms in the Program
Merge branch 'feature/batch_renderer' into develop