Fixed race condition in screen fader.

If multiple fades were called at once, it caused ScreenManager to
get confused about which screens to show. ScreenFade should not
allow multiple fades, so I fixed this.
Merge branch 'screen_fade_bug'