Set up basic program flow and created structs to hold the program and camera state to minimize global variables. Got some of the simple state updates for the program state and camera state started. Rotation and zoom hasn't been touched.