Integrate stack commands with interpreter modules.

Add:
	src/interpreter/
		stack/stack.h
			-add a `Point_t` typedef'd struct, which represents the origin
			coordinates the engine's coordinate-system stack will contain.

		(shell, file_parser).c
			-add a coordinates `Stack_t` to the shell and file-parser
			evaluators.

		interpreter.(c, h)
			-add `push`, `pop`, and `move` MDL stack commands; modify
			`argRequired()` and `evaluateCommand()` accordingly.
Integrate MDL lexer/parser.

Add:
	lib/
		-Add dir for libraries.

		lib/*
			-Add all files necessary for MDL parsing.

	makefile
		-Add rules to compile the lexer/parser with `flex` and `bison`, and to
		compile the new object files into the engine.

	src/engine.c
		-Replace `main()` with `engineDriver()`, as the executable's `main()`
		now resides in `lib/mdl.y`/`bin/y.tab.c`.
Add MDL cmd eval, ref flex/bison integration.

Add:
	lib/mdl.y, src/engine.c
		-Delete `main()` in `mdl.y`, and redefine it in `src/engine.c`, which
		should be the engine's main entry point for a logical structure.

	src/interpreter/file_parser.(c, h)
		-Add `readMDLFile()` to read and evaluate an MDL file.

	src/interpreter/interpreter.(c, h)
		-Add `evaluateMDLScript()`, to interpret MDL commands in the global `op`
		commands array.
		-Add handlers for only several basic commands; entire MDL spec will soon
		be accounted for.
Add functional MDL parsing.

Add:
	src/graphics/matrix.(c, h)
		-Add `CLEAR()` macro and `copyMatrix()`.
		-Expose `Matrix_t` to public scope.

	src/interpreter/interpreter.c
		-Complete the first iteration of `evaluateMDLScript()`; the function
		correctly evaluates the `robot.mdl` file.

Mod:
	src/interpreter/stack/stack.c
		-Remove `Point_t` struct.
		-Make the initial item on a `Stack_t` an identity matrix instead of a
		`Point_t` -- the original, incorrect implementation was due to my
		misunderstanding of the purpose of the origin stack.
Add torus, line, save cmd evaluation.

Add:
	src/interpreter/interpreter.c
		-Add `torus`, `line`, and `save` MDL command evaluation to
		`evaluateMDLScript()`.

	src/graphics/matrix.c
		-Modify `addEdge()` to add a triangle (ie, three points, instead of just
		two) with one negligible, short side, so that any added lines are
		rendered properly by `drawMatrix()`.

Mod:
	test/(testAddEdge -> testAddEdge.csv)
		-The file didn't follow the test files' naming convention (a ".csv"
		extension); rename it accordingly.
Replace graphicscript with MDL files.

Add, Mod:
	scripts/((robot, test).mdl, *.gsc)
		-Add two MDL files used for testing.
		-Remove old *.gsc files.
Suppress stdout newlines, fix transformations.

Add:
	lib/mdl.l
		-Suppress the newlines that `flex`'s `yyparse()` prints to `stdout` by
		adding a newline to the default regex match.

Fix:
	src/interpreter/interpreter.c
		-Transformations were being incorrectly handled. The interpreter
		multiplied new transformation matrices into the top of the stack,
		instead of multiplying the top of the stack into new transformation
		matrices and then replacing it with the newly created matrix.
Remove test(), axis value switch in interpreter.c.

Add:
	src/engine.c
		-Remove `test()`, which was used to test
		`src/interpreter/stack/stack.c`'s proper functionality.

	src/interpreter/interpreter.c
		-Remove the hack-ish `axis` value switch, previously used to confirm
		that the engine was handling rotation axis values correctly.
Remove currently obsolete shell files.

Add:
	src/interpreter/(shell, shell_graphics).(c, h)
		-Remove all of the engine's interactive shell source, which is currently
		entirely incompatible with MDL and, thus, obsolete.
		-Will be reimplemented with MDL support at a later point, time
		permitting.

	src/interpreter/(file_parser, interpreter).c
		-Remove commands used for parsing files and commands in the engine's old
		scripting language.
Add VariableGradient_t, initializeVariables().

Add:
	src/interpreter/interpreter.c
		-Add `VariableGradient_t`, `initializeVariables()`, and
		`createGradient()` to generate a table of variable values per frame of
		an animation.
Add functional animations.

Add:
	src/interpreter/interpreter.c
		-Add `findVariable()`.
		-Modify `evaluateMDLScript()` to loop over the flex/bison-generated `op`
		array `frame` times, with changing variable values.
Fix memory leaks; remove the utils module.

Rem:
	src/interpreter/utils.(c, h)
		-The module is currently obsolete, because ts file input function was
		used only by the engine's shell and old interpreter, both of which have
		been removed; consequently, remove it.

Fix:
	src/interpreter/interpreter.c
		-Patch up all memory leaks detected by `valgrind`.

	src/interpreter/stack/(single_linked_list, stack).(c, h)
		-Have `freeList()` accept a pointer to a function that deallocates a
		list's data pointers.