Enhance starting locations [CR]

This fixes some of the problems mentioned in #8649

- Start location uses the target member instead of the ident of the starting location to search the overmap.
- Start location is searched on all z-levels (try "open_air"), "lmoe_under" is possible as is "lab_core".

The remaining problem is that some starting locations might not be available on the starting overmap, but that is difficult.

I also moved some code into functions and into the `starting_location` class so they can be extended there and because they are not part of the normal game play (but that is up for discussion):
- `starting_location::setup` puts the player on the overmap terrain of the starting location (e.g. a house) and initializes that overmap terrain (e.g. translates the windows to windows with closed curtains).
- `starting_location::place_player` places the player in the reality bubble.

Also added flags to starting locations:
- "ALLOW_OUTSIDE": current code would only place the character on squares that are inside. This flag allows one to start in the woods (e.g. starting location target could be forest).
- "BOARDED" (up for discussion): make the starting house boarded up (windows/doors changed to their boarded counterparts) with the available furniture moved in front of doors/windows. You also get a hammer for free as it has been used to board up the house.

Three new starting locations:
- boarded up house: start in a normal house, but it's boarded up.
- forest: start in a forest area (but there is currently no max/min distance to cities, so it could be near a city, or worse: near a military outpost).
- field: start in field area (otherwise same as starting in forest area).
Would it make sense to just lock k = 0 here?