Rework hmap_propagate()

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

- No longer a recursive function, but one that must be called for each
  order of the heightmap, i.e. 9 to 0 for a heightmap of max order 10.
  Iterates through the heightmap elements and propagates roughness values
  from adjacent siblings of next heighest order into the current patch.

- Small tweaks to heightmap vertex shader and minimum roughness value.