Fix thread synchronization problem with Sheet.dirty
MapCache performance improvements
Improved efficiency of startup methods.

- ShpReader will copy the input stream into memory just once rather than for every header.
- ShpReader.CopyImageData switched to use Array.Copy since that uses some unsafe magic for speed.
- In ActorInfo, cache a GetType call and prevent needless materialization in PrerequisitesOf.
- In ObjectCreator, cache type and ctor lookups since these are expensive and often repeated.
- Implement IReadOnlyDictionary<T, U> on Cache<T, U> to provide some supplementary functions.
- In TechTree.GatherOwnedPrerequisites, rearrange a Boolean 'and' expression to evaluate expensive functions later in the chain, and use ContainsKey to speed up name check.
add sublime text project/workspace to ignore
expand credits window a bit to fit the text better.
Merge pull request #5593 from RobotCaleb/misc_fixes

Expanded credits window a bit
Merge pull request #5505 from pavlos256/map-preview-generation

Map preview generation
Merge pull request #5484 from RoosterDragon/startup-efficiency

Improved efficiency of startup methods.
Removing requirement to restart game after applying changes to mouse focus option. The setting now defaults to 'false' as it is likely to be disruptive to players who are used to the usual behaviour in windowed mode.