Move piece objects over to C.

This is the beginning of the great Cificiation. Pieces are moved
over in this commit, soon to be followed by game and mixer.
Rewrite Game class a struct.

This commit moves game over to C. Mixer will follow in the next commit.
Rewrite Mixer in C.

This is the final module rewrite; the next commit will complete this branch
as a transition from C++ to C.
Rewrite to C.

This commit finalizes the transition from C++ to C.

The commits on this branch are huge and incoherent. It was impossible to
test individual parts without spending as much time on compatiblity between
the converted C and unconverted C++ modules as actually converting modules.
As such, the whole thing was overwritten in just a few stages for speed's
sake, at the cost of a meaningful version history.

The merging of this branch will represent the new reference point for version
control, and lesson learning about not ever doing anything like this again.
Localize the UPDATE_RATE define.

The UPDATE_RATE define was misleadingly named, and localizing it not
only makes more sense, but having a static const will provide more
descriptive compiler messages if it is ever relevant to one.
Remove debug statements.
Mark template arrays as constant.
Organize metris.c functions.
Remove unused typedef enums.
Localise coordinate typedef.
Remove unused variable new_frame.
Localise gui constants.