Added concept of prerequisite. This is useful for UI components that need something else to be drawn but don't need that other component to flush its drawing out to the screen (since it might not have any changes). This will mostly happen with alpha blending, though I'm sure there could be other cases. The biggest driving force behind this change is the fact that flushing out the entire screen if FRIGGIN' EXPENSIVE.