Sped up shroud rendering.

- Only update shroud within the visible screen area, rather than the whole map. This improves performance on larger maps significantly since large portions of the shroud do not need to be updated.
- Decrease the size of elements in some arrays in hopes of reducing memory needs and improving cache hits.
- Change some jagged arrays into single dimensional arrays for improved performance (jagged bounds checks are more expensive than for single dimensional arrays).
- Hoist the visibility function for ShroudedEdges/FoggedEdges into a parameter allowing the duplication between these functions to be removed - now a single function called EdgesMask.
- Add names for several magic values.
Remove shroud adjoining the map boundary.

This removes the wavy lines effect and presents a clean edge.