Improved Rift Gateway Generation and Fixed Several Bugs

Major points:

1. Improved RiftGenerator so that gateways don't generate on top of trees and in other strange places. The generator will also try placing gateways repeatedly if there are obstacles (e.g. trees), so there is a chance that the generator will find a gap between the trees and build a gateway at ground level.

2. Fixed a bug in how the random coordinates for gateways and rifts were being generated. The bug would cause those features to not generate if you moved toward negative X and Z coordinates. Yes, this sounds bizarre, but it's because we were generating features outside of existing chunks under certain circumstances. Check the commit for a detailed explanation and steps on how to reproduce this bug. It could have affected the perceived rarity of gateways in world generation.

And other minor changes and fixes.