New3dapi: Rename MeshPartMaterial to NodePart

That seems like a better name.

Also some small other changes:

JsonModelLoader: i'll add a PR to fbx-conv to reflect these changes, just need to cleanup things and decide on skinning. The changes are:
- Mesh doesnt have to have an id (its referenced by its mesh parts)
- Material doesnt have to a type ATM (its currently implied by having specular attributes)
- Translation, rotation, scale aren't required (only need to be included if actually changed)
- Break current g3dj files: rename array of materials in node to parts.

ModelInstance: Add userData, I remember discussing it, but not sure what we decided. Either way I had it in my branch, but can be removed easily.