Encapsulate FrameState in Gtk and hide it from the Client code
Simplify frame display logic by removing the FSet frame state

The state was needed to express some states, when very few
frames were ever shown, but now, with many frames per turn,
we can assume at least one frame per waiting for a key.
Make Gtk.hs thread-safe

And simplify it in the process.
Move Frontend/ to the top level

in preparation of clients sending frontend commands on channels,
not calling them directly.
Add client-frontend connection channels
Multiplex messages from clients to a frontend
Spawn a thread serving the frontend-clients channels
Rename connections
Issue frontend directives via channels

For now only in case of multiple human players and without
the fadeout frames.
Disable any direct frontend calls by clients

All goes throught the channels now. Fadeouts are disabled temporarily.
Ask to display fade frames in the frontend, not in the client
Eliminate sframes and sfade from the client state
Don't multiplex client-frontend channels

But we still need to unmultiplex them.
Pass Frontend connection method as argument when a client is created
Pass Server connection method as argument when a client is created
Get rid of unmultiplex
Reenable all fades
Wait for clients to exit before, not after, frontend shuts down
Don't interleave slideshows of different clients
Register high score for all allies, for spawners, etc.