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.

Also added some other minor tweaks for performance and general cleanup.