Cave Generator works

- Cave Generator works. Just walk up the stairs to the east and you'll
end up in a randomly generated cave. It's generated each time it's
loaded, and it's the same each time.
- Generate lots of different looking caves by messing with the perlin
noise and settings of the generator (mostly the number of rooms)
- Generator needs comments and  better parameterisation
- Added a "bowl" option to the Perlin Noise generator which makes the
sides higher and the center lower using cosine interpolation.
- Fixed some small bugs in the client drawing code, but still not great.
- Added a namespace General on the server for a Heap-based priority
queue which I used for the cave generator.
- PerlinBitmaps class can create and write bitmaps of the noisemaps the
perlin noise code generates.