create_summoner no longer puts summoners in walls.

It now takes the caller's suggestion, then tries to find an open space
by starting a breadth-first search from there.
create_puppet no longer puts puppets in walls.

Returns with failure_reason "Invalid position!" if pos is a wall.