Map Generation Refactor

Huge refactor of how world generation works. Fixes #97, #93, #90, #88, plus a ton of other cleanup. This should fix all of our glaring race conditions, and then we can use the [go race detector](http://blog.golang.org/race-detector) to see if we can find any more.