Fix eggsack

Egg sacks are created in

- `mapgen_forest_general`: I added a line to make the terrain under the egg sack to  `t_dirt` (in case it was a tree or similar).

- `mapgen_generic_house`: The egg sack is placed at (i, j), that position is known to be a floor (checked some lines above the placement of the egg sack), so this should be fine.

- `mapgen_basement_spiders`: Added an explicit check for `move_cost` above 0 before placing the egg sack. This fixes #7573.

It seems that creating egg sacks in solid objects is no problem as they can still be examined, but issue #7573 exist, so I also prevented that case in the forest.

----

I combined the two `iexamine` function that handle the egg sacks into a single generic one. It does now also prevent spiders from spawning inside of walls or other creatures (including the player *and* npcs) by using `game::is_empty`.