Implement "segregation" of mesh groups

Model::renderMeshes() was constantly switching shader programs between every mesh of a model. This causes a fairly significant performance hit on models with lots of sub-meshes (like the Westfield model). This change does a preprocessing pass on the meshes of the model geometry and stores a list of mesh types which require each different shader type. renderMeshes() is changed to support doing a single group pass at once only changing the shader program once per group type. This makes the Westfield model jump from 15fps to 55+fps on my low end MBP.

This PR also includes some enhancements to the timing stats.
Ok, I just wrote a quick little test routine that tests loading and accessing a QList<> vs a QVector<>... over 100 tests of 1000 items per container, the QVector is marginally slower on load and significantly faster on access...

```
QVector LoadTotal: 2462 usecs 
QVector LoopTotal: 386 usecs 
  QList LoadTotal: 1902 usecs 
  QList LoopTotal: 1763 usecs 
QVector LoadAverage: 24 usecs 
QVector LoopAverage: 3 usecs 
  QList LoadAverage: 19 usecs 
  QList LoopAverage: 17 usecs 

```

I will open an PR that changes this... no point in paying an extra price when they have the same API and functionality otherwise.