Added new functionality to EdgeBreakdownTree. Added constant FULL_BREAKDOWNS, which consists of a full tree of all possible edge breakdowns for each edge. Added private EdgeBreakdownTree as a field in PuzzleBoundary. This gets read from a file, and defaults to FULL_BREAKDOWNS if a file isn't found.
Miscellaneous improvements.