Added a recursive dirtying computation that will go through the zones and find out how many screens will be drawing stuff. When it gets the same number twice in a row, it can be assured there wasn't any backwards dirtying. This is necessary since we can have things that use alpha blending and require their background to be drawn already. But, if they need to erase themselves (which they will, since they use alpha blending...) then they'll affect the background their blending into. So, they need the background to be redrawn so that they don't have to erase themselves. TODO: Possibly improve the flushing to the screen buffer so that in the case just mentioned, we don't need to wastefully redraw the entire background (it might be that the alpha layer only needs a tiny portion of the background to be drawn, meaning that the redrawing of the whole thing and flushing it is going to be incredibly wasteful).