Updated base backend to follow CRTP
Updated README
Added ogl3_backend boiler plate code
Made enum types be all capital letters (to avoid clashing with keywords)