Preserve face ordering in OBJLoader and OBJMTLLoader.

OBJ loaders did not correctly preserve vertex and face list ordering and were creating duplicate vertex entries, rather than letting faces share vertices. Reordering the faces was breaking our morph creation system, which relies on the mesh topology being fixed.

This should be as efficient as the code it replaces for large models (possibly very slightly more so, as it doesn't duplicate vertices, so should use a bit less memory). But it would be worth testing it against the large models referenced in #3937 and #3965, just to make sure.