Changed MiniYaml.NodesDict property into a method.

Method is now called ToDictionary.
- Cached a few invocations into locals which should prevent some redundant evaluation.
- Added ToDictionary overloads that take projection functions for the keys and elements, since several callsites were doing a subsequent Linq.ToDictionary call to get this.
Avoid redundantly setting viewport parameters in BeginFrame.

- Cache the old resolution, scroll and zoom in BeginFrame, and don't bother updating the viewport parameters again until they change.
- Pass around scroll as an int2 to reduce the number of back-and-forth casts.
Minor changes to reduce allocation.

- Cache a predicate in ActorMap.
- Use short circuiting to skip a call to HasTrait in AttackBase.
- In AutoTarget.ScanForTarget, move the check for the scan time above the calculations since we can skip them if it's not time yet.
- In AutoTarget.ChooseTarget, merge four Where calls into one.
Merge pull request #5401 from RoosterDragon/nodesdict

Changed MiniYaml.NodesDict property into a method.
Merge pull request #5540 from RoosterDragon/begin-frame-cache-viewport

Avoid redundancy in BeginFrame.
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.
Adjust travis config to update package lists before installing dependencies
Merge pull request #5621 from chrisforbes/travis-update-before-installing

Adjust travis config to update package lists before installing dependencies
Change terrain type from string based dictionaries to arrays
Add developer shortcut to reload chrome files

Hitting Ctrl+Shift+C will re-initialize the chrome provider,
reloading all chrome files instantly. Useful when changing the
UI.

Note: A new "RootWidget" was created to trap top-level (global)
shortcuts instead of putting everything in Widget.
Merge pull request #5463 from pavlos256/perf-terrain-movement

Change terrain type from string based dictionaries to arrays
Merge pull request #5615 from RoosterDragon/minor-alloc

Minor allocation tweaks
Merge pull request #5550 from pavlos256/reload-chrome

Add developer shortcut to reload chrome files
Merge pull request #5597 from Happy0/mouse_window_focus

Removing requirement to restart game after applying changes to mouse focus option
export health, cost and damage per section into a CSV file

closes #3855
add armor types and move calculation into spreadsheet
add weapon name
factor in burst delay
add a pure data export for non-spreadsheet applications