Improve on heightmap technique

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

- No longer generating or storing vertex attributes. Store only indices
  which shader uses (gl_VertexID built-in) to determine X and Y
  coordinates of heightmap element, and generates vertex position
  in the vertex shader by sampling the heightmap.

- stb_image now compiles properly. Was missing an important definition to
  include the implementation code.

- Remove SHADER_DIR definition, use RESOURCE_DIR definition instead.
  Defaults to the top-level directory of the source tree, so it can access
  whatever resources are necessary. Moved shaders to a new resource/
  directory, where all important engine resources will be stored.

- Render solid colored terrain. Future improvements will be terrain
  normals for lighting, and optimized indexed draws to send fewer polygons
  down the pipeline where the terrain is too far to see in complete detail
  or is relatively smooth or flat. Added specialized heightmap shaders for
  this rendering technique. The shaders scale each of the color components
  of the heightmap texels by a hard-coded amount; the source image used
  here was generated with this sort of channel scaling scheme in mind.
  Will remove or change as necessary. The texel height is used to color
  vertices in the fragment shader; will adjust this when texturing and
  texture blending are implemented.

- Engine ip_core_buf no longer allocating such a relatively huge amount of
  memory, heightmap objects will generate and maintain their own
  textures/buffers for now.

- Add various error codes for new error cases, e.g. FILE_NOT_FOUND or
  IMAGE_LOAD_FAIL. Also added description strings for these error cases.

- Adjust camera move speed multipliers to compensate for vastness of
  terrain being rendered. Will re-adjust as necessary.

- hmap.c contains some internal callback functions used by stb_image when
  loading images from a PhysFS file handle. Will likely remedy this with
  an interface specifically for loading image data, so hmap.c and gfx
  code in general doesn't need to work directly against the libraries.