More building moves

Move more building generation code out of the huge switch statement.

Also adds the ability for building generation to check diagonal tiles as well as orthogonal ones. Currently only used for water showing up on swamp/forest boundaries and extra sidewalk checking (which has removed most of the weird sidewalk-less spots in cities).
Also fixed an important map-gen bug that was causing the game to improperly calculate the tile immediately to the east of the current one in map generation.