many implementation changes. added an object-oriented model for the
player and enemies; the maze only updates the "dirty" parts (when the
enemies or player moves, but it still updates the entire grid when a
wall is placed or destroyed), and only updates the path calculation when
the player moves or a wall is placed or destroyed; moved functions
between the model, view, and controller as necessary. improved
documentation.