Rewrite globjule to be more modular, load mtls and waveform object groups

Source is now split up based on what file it reads, file reads the obj files
and then passes the appropriate bits off to mtl and object for reading of
thie specific directives.  Encoder still does duplicate vertex checking and
gl-vertex/index-array generation from file data.  The new globjule object
should contain everything needed to draw that object in OpenGL.
Load objects and materials correctly

I had assumed that each list of vertices should start counting anew
for each object.  It turns out that they're shared between all objects
and so now they all go into one vector.

I was also expecting differnt mtl files for each material, but apparently
many can be in one file, so deal with that correctly.