DEBUGGING
==========
-Read the sections about shader debugging, starting from line 59
-Change the background to gray in case my square is being rendered in black

TODO
==========
-Change the logger class to use cout instead of printf. Consider how easy variable argument support would be.
-Change all error messages to use the logger class so they get printed to the log file as well.
-Make sure fullscreen works correctly on OSX. Check the book to see how to handle Retina Display.
-Check the book's "Printing Parameters from the GL Context" to output a bunch of OpenGL context params
-Add code to allow for resizing/maximizing the window
-Move some common functions into a Utils class

DONE
==========
-Print a warning if texture images don't sizes of 2^x
-Fix the texture-mapping code to not flip the texture upside down.