Terrain Generation (Caves)

Added caves to the prototype terrain generator.

Broke the terrain generation code out into its own class.

Factored magic numbers out of the terrain generator into constants.

Fixed a bug with the noise.hpp header (missing #pragma once).

Fixed a few minor bugs with the terrain generation code in refactoring
it.