Adds a new piece of clothing that combines the 4 thermal-electric items into a single item, as well as 2 recipes to make them and item group inclusion alongside individual thermal items.
Adds a new piece of clothing that combines the 4 thermal electric items into 1, plus recipes for creation and item group inclusion.

 On branch ThermalOutfit
 Your branch is up-to-date with 'origin/ThermalOutfit'.

 Changes to be committed:
	modified:   data/json/items/tool_armor.json
Fixed auto-tab issues in thermal outfit item group file and weird-ass spacing in recipes.
Fixed auto-tab issues in tool_armor and recipe_armor. Again. Also did a manual check of every newly-created line in those files (not C+P ones since those preserve spacing) so hopefully this will be the last of this. At least tell me stuff like this isn't an outlier for new submitters.
Merge pull request #10520 from SorensonPA/ThermalOutfit

Thermal outfit
Argentinian credits and motd update
Spanish credits update
German update
Argentinian update
Spanish update
Italian update
Japanese update
Russian update
Chinese Traditional update
Merge pull request #10540 from VlasovVitaly/trans-update

Translations update
Use map::ter_at/furn_at to get terrain/furniture

They return the terrain furniture object directly.
Move submap structure into its own header/source files.
Put all the things that are on a map square in one struct in the submaps.

Instead of having several arrays, one for each thing that can be on a map square (one for terrain, one for furniture, items, ...), have only one array of mapsquare objects. Each of those stores a terrain, a furniture, an item vector, ...

It allows for easier addition of map square properties, easier access to it (via map::ms_at, which does bound-checking etc.) and easier conversion to 3D.
Apply astyle to some map functions
Make the vehicle cache map use a point instead of a pair of ints.

Because it's not some arbitrary pair of ints, it's a point.

Replace some manual checks with inbounds function, the checks were wrong
anyway as they did not include the lower end (x==0 or y==0).