Using specialized enum instead of global Type and shitload of type
traits to handle it correctly. Removed TypeTraits::indexType() and
cleaned up MeshTools::compressIndices() while at it.
* Added missing forward declarations.
* Added getters and setters to ShapeRendererOptions class.
* Cube primitive is indexed, modified the mesh creation accordingly. It
now uses MeshTools, link the library to DebugTools.
* Simplified resource handling so it's now handled in one place. It
still needs to be thought out better.