Move Object ref from buffer to GthreeObjectBuffer

This lets us share GthreeBuffers between objects
Move geometry groups from mesh to geometry

This allows geometry group buffers to be shared between
meshes with different uniforms (positions) and materials.
Cache current geometry group to avoid updating buffers if nothing changes
Use quarks for attribute/uniform names
Fix Z-sorting