Instead of max levels in gameplay_variables.cc, make them available in
options.  Voila and stuff.

Test the level load routine in Game
	DONE

Instead of moving grid down (pain in the arse), make a 'bar'/'net'
that moves UP, that, when it touches the balls, it goes KABOOM!  and
game over.  Obviously, we should move the launcher with the thing.
	Partially DONE.  Now indicate somehow when the bar is going
	to move up, and shake it.

Launched_Ball_Manager!!!!!!!
	DONE (more or less)

Gameplay_State
	DONE for current components

Integrate next level loading routines

Grid::reset()
	DONE

Launcher::reset()
Popped_Balls_Manager::reset()
Launched_Ball_Manager::reset()

Game Over state logo + sad music.

Redesign WHOLE User_Input_Manager thing.  Keys don't work properly.
	HACKED User Input into a form that's useable

Get grid (and other things) drawing done, get stuff on screen, and
start slowly building other things up, testing as you go, from there.

Create a generic State Machine to make transitions between states
easy.
	POSTPONED until I finish the game - that's the main thing!

Make Sound_Output_Manager configurable (buf size, etc.)
	DONE.

Make a super class to all the game elements that has several common
functions: the tick/tock processing should only be done if 'enabled'
is set to true; so generic tock processing funcs are made that call
'handler' funcs, which children override, and the generic tock funcs
only call their handlers if 'enabled' is set to true.
	DONE.

Include functions in User_Input_Manager to get/set state of
buttons/axes/keys/etc.
	DONE.

Test Game_Manager/System.
	DONE.

Finish todo items on paper.

Get graphics working, and test the AYQ Tock model with graphics and
frame-skip (max_tick_func_skip)

Test 'button press as soon as program starts' to test event flushing
code at the beginning of User_Input_Manager()

