fixes flakey path extension logic

the extension handling wasn't working very well at all (e.g. loading the mesh by '../meshes/mymesh' would confuse it), and the list of supported extensions was different in every location.  i took a minute to clean it up.