City generator refactor

Merging in aaaaall of the 2.0 changes so far.