Another bug fix - make the free list compact if we haven't done one yet and we failed enough rooms. We need at least one compaction to verify all space is appropriately used. Also cleaned up the free list flood fill function to be more readable.