Restructure .gitignore file
gitignore: Restructure existing rules

Organize the rules into groups corresponding to the tools creating
these files.

Use blank lines and comments for clarity.
gitignore: Keep README and COPYING files
gitignore: Additional cmake rules
gitignore: Merge rules from po/**/.gitignore files
Remove unnecessary translation scripts

The new gitignore rules will automatically ignore these.
gitignore: Merge dozens of "Thumbs.db" rules

It suffices to apply the rule once in the root directory.
gitignore: Reduce number of false positives

Especially in utils/umc_dev/ a massive number of files matched ignore
rules. As tracked files can't be ignored, this had no real consequences.
gitignore: Fix order of rules for Makefiles

The exceptions were applied before the generic rule, thus they had
no effect.
gitignore: Block some extensions
gitignore: Merge rules from projectfiles/
gitignore: Include more rules from subdirectories

That is: data/lua/, scons/, and utils/
gitignore: Merge rules from doc/ and data/tools
Remove remove-potcdate.sin from wescamp-import

If we delete the remove-potcdate.sin scripts, we may as well remove the paragraph importing them.
use ptr to impl for gamemap in game_board, avoiding map.h include

unit_map is modified in many places that don't normally include
map.hpp, so to avoid doing harm by adding this class, I am making
it hold a scoped pointer to the gamemap instead of an actual
gamemap. This results in very few changes.

- The implementation of game_board has to use the pointer.
- game_board must use copy and swap idiom
- lua get terrain function must pass strings to the game_board,
  not enums, and we parse them as std::strings in game_board
  instead of as c strings in lua api (which was a bit gross anyhow)
Fix SDL2 compilation with scons
use display_context pointer for reports that need teams
comment out unused includes
use disp_context->units() in reports, not resources::units
fixup prior commit