extend usability

This extends the previous work to be able to handle meshes, many
different vertex packings, read OBJ files and also cleans up the code a
lot