Clean up Image interface and loading code, add function to free image data
Combine colour & texture shading back into one shader, since that makes way more sense! Still want to specify different shaders per object/material later though. Also added UV coords for primitives. This required specifying each vertex uniquely, so EBOs are not super useful now (leaving EBO code in for later)