Use buffers for triangle meshes
This merge request introduces index, vertex, normal and UV buffers for triangle meshes.
Previously, a triangle would store its respective vertices, normals and UVs. However, this wastes a lot of memory for large meshes. By having a triangle only store its index and its corresponding mesh, storing large triangle meshes now becomes much more memory efficient.