Fixed water rendering, did tons of other refactoring.

* Water rendering, which has been slightly broken in ae7bde2c9c9a6808733f45124cb3d2737b290c2e, has been fixed.
* Much rendering code has been cleaned up, commented, and moved out of Minecraft class into Renderer or LevelRenderer (when possible).
* Added isOpaque field to GuiScreen, to avoid rendering the whole level underneath opaque screens (e.g. on kick/disconnect/error).
* Sped up level generation very slightly by reducing frequency of progress updates.