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.

- 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.