Improved Helper Methods

Now the recursive hole search uses a list so it won't go into a loop and
miscalculate a hole. It can repeat some of the entries, but that's
unavoidable. Added some other methods to BlockData to help with this.
Also removed two unused methods in SAOTowerGen.