fix VAO and others. still a little ugly.
instance data works properly now
UBOs use BufferObject class
removed Useless Factory Pattern, macroed redundant code
improved shader interface
recreated files I forgot to commit