During startup, the xfree86 DDX's
protocol screens first, and then GPU screens. On teardown,
CloseScreen in the reverse order: GPU screens first starting with
the last one and then working backwards, and then protocol screens also
in reverse order.
ScreenInit in the wrong order: for GPU screens first
and then for protocol screens. This causes a problem for drivers that
have global state that is tied to the first screen that calls
Fix this by simply re-ordering the for loops to call
protocol screens first and then for GPU screens second.