Work on heightmap optimizations

Signed-off-by: Paul Holden <paulholden2@gmail.com>

- Render triangle fans, using less detail for smoother areas.

- Uses steepness to determine roughness, will change to check for
  coplanarity.

- Generate triangle fans via hmap_gen_patch() function. Recursively
  generates patches of appropriate detail. Need to consider detaching the
  index buffer from the hmap object and using a generic interface, as
  different situations may need different types of buffers (dynamic draw,
  persistent mapped, orphan, etc).

- Heightmap dimensions must be of the form 2^n + 1, to play nicely with
  the quad-tree patch generation algorithm.