don't put duplicate entries into cl_visedicts

Resolves issue #9.

Summary:

skychain is a linked list (through texturechain pointers) of surfaces. Surfaces are appended to skychain while processing cl_visedicts. If there are duplicates in cl_visedicts then loops can be formed in the skychain. If there are loops in the skychain then R_DrawSky will never terminate. (This is all contingent on certain cvars used to choose the sky style, but this is the default behavior.)

Solution:

Dups in cl_visedicts are generally bad, so let's eliminate those. This will also fix the skychain issue.

Things other than R_StoreEfrags that modify cl_visedicts all happen under _Host_Frame:

```
_Host_Frame
  CL_ReadFromServer (if connected)
    CL_RelinkEntities resets cl_numvisedicts and then adds to cl_visedicts
    CL_LinkProjectiles (if qw) adds to cl_visedicts
    CL_UpdateStreams (if hexen2) adds to cl_visedicts
  CL_UpdateEffects (if hexen2 and connected) adds to cl_visedicts
```

That's all cool!

Then there's R_StoreEfrags. It is down the callstack from SCR_UpdateScreen.

SCR_UpdateScreen is called from: _Host_Frame, Con_Keydown, Con_Print, Movie_TestFPS, SCR_BeginLoadingPlaque, and SCR_ModalMessage.

The only time we actually want R_StoreEfrags to add to cl_visedicts is in the case where SCR_UpdateScreen is called from _Host_Frame. So let's enforce that with a global flag.

This change fixes the specific reported issue with czg07. Giving it some burn-in testing now to see if it causes (or solves?) other issues.