Progress on Maze Generation

* Fixed a bug with PartitionNode.translate() that would mangle the
boundaries of mazes. It hadn't shown up during testing before because of
an incremental compilation problem.
* Added the Shuffler helper class to provide a shuffling function that
works efficiently with arrays.
* Added several new door-related decorators. Currently, only
CentralDoorDecorator and PillarDoorDecorator are implemented.
SideDoorDecorator and SpreadDoorDecorator must be completed before
DefaultDoorDecorator can be removed.