Move fade processing to rolnfade.c and make it more like original.

This enables the special palette which transitions to a new
palette, and then picks another palette and transitions again,
repeating. It also enables fade to white transitions. It disables
palette changing during logo display, because the logo looks best
that way. Manual palette changes now use smoooth transitions,
not abrupt immediate shifts. Image time now includes the fade
in time, because mainLoop() doesn't know when the fade in ends.
Use SDL timer instead of usleep for palette animation intervals.

The timer callback may be called in a separate thread, and
drawing functions should not be called there. So, it needs to
signal the main thread via a condition variable.

This decreases frame rate variation.