Refactor per-player shrouds & fix shellmap shroud.
Display selection decorations to allies & observers.
More shroud refactoring.

This introduces a hash on Shroud which ShroudRenderer
can observe, removing the need to explicitly twiddle
a dirty flag between objects.

Shroud disabling is now done via RenderPlayer, so
enabling the cheat or winning/losing will now give
vis equivalent to an observer.
LocalPlayer.Shroud is never the right shroud.
Fix selection decorations being drawn behind fog.