Properly implement multiple texture loading

There's a lot here; this should have been broken up into several
commits.
a) Added a VramAllocator, which is a naive way to load things into Vram
and keep a handy list of offsets to those things. It's nice and won't
let you accidentally load the same thing (name) twice.
b) Implemented texture parsing in Dsgx, and added ApplyTextures(); run
this just once after loading the textures for the object, and it'll
write the offsets into the data for future Draw() calls.