Added checkCost method for free rooms
Fixed swapping, added undo for swaps

Now produces a more optimal solution than the initial solver.
Randomly choose neighbor or free list swaps