Separated GLUT state initialization from entry into the GLUT run loop.  Added a function to override the default keyboard callback (can now be set per tutorial).