Improve maze drawing efficiency

Instead of erasing and re-drawing the maze after each step, erase and
redraw only the node that changes. Change Wall to inherit from Node to
remove duplication and add functionality for finding the Wall's
position.