Use path.join instead of Unix paths
Add the ability to handle colour meshes

This adds the ability to read colour-per-vertex meshes, e.g.
PLY files.
Add guards for missing tcoords/colours

Previously, if you tried to access a mesh with no texture
coordinates we would segfault! So let's guard against that