Added static cast to size_t for IndexT

Compiling with Clang gives the following error:

```
./three/renderers/impl/gl_renderer.ipp:792:33: fatal error: ambiguous
      conversion for static_cast from 'Index' (aka 'IndexT<int, -1>') to 'size_t' (aka 'unsigned long')
    return geometry->materials[ static_cast<size_t>(geometryGroup->materialIndex) ].get();

./three/utils/index.hpp:21:3: note: candidate function
  operator T() const { return value; }
 
./three/utils/index.hpp:22:3: note: candidate function
  operator uint32_t() const { return static_cast<uint32_t>(value); }
 
./three/utils/index.hpp:23:3: note: candidate function
  operator uint64_t() const { return static_cast<uint64_t>(value); }
```

This is fixed by adding a size_t operator to the IndexT.