Renderer Interim Checkin
- Refactored ModelMgr code
- Now, ModelMgr is templated against the renderer_type
- The renderer passes in itself to the ModelMgr so the ModelMgr can make
  callbacksto the renderer to load meshes and materials into the GPU.
- This keeps the seperation between the ModelMgr and renderer, which is
  what we want.
- We maintain the loose templated coupling between the engine and the
  renderer, but still let other renderers utilize the code in ModelMgr.
- We are now loading mesh data into the GPU, but still not rendering
  anything yet.
- Changed "create_model_*" naming convention for system_api to
  "create_shape_*"
- This disambiguates these methods, as shapes are a pretty specific type
  of model in this engine, i.e. faceted single color meshes.