Tidy up mapgen, fix some buggy spawn_item for loops

A couple places in mapgen were using for loops to spawn multiple copies of an item, rather than the optional quantity arg to spawn_item. Changed those cases to use the quantity arg (which calls a for loop inside the spawn_item method, but it makes the call site a bit cleaner).

Also fixed some cases where rng(lower, upper) was used in a for loop, because that leads to constantly-changing bounds (which is almost certainly not what was intended).