Use more appropriate VBO settings

Unskinned meshes don't need dynamic VBOs; they aren't rewritten since their
transformations are handled by the modelview matrix. They also don't need the
local RAM copy (the "shadow buffer") since it's really only useful for skinning
purposes (though this means the VBO has to be readable for static geometry to
work).
Read some missing particle data from NIFs
Read more particle information
Even more particle information
Prepare for creating particles

This adds a vector of ParticleSystems to the EntityList, and modifies
corresponding code to handle it. It also loads the ParticleFX plugin so
particles can be created (although they aren't yet).
Create particle systems for NiAutoNormalParticles and NiRotatingParticles nodes

Very incomplete, but it's something to work with.
Merge remote-tracking branch 'zini/master' into nifogre
Use a helper function to get node properties
Don't offset the animation time to 0
Read NiVisData info
Fix looping anims that dont have "loop start"
Prepare for supporting controller objects
Add support for NiVisController
Add a custom GrowFade particle affector
Implement NiParticleGrowFade
Merge remote-tracking branch 'zini/master' into nifogre
Fix some material warnings
Reduce some stdout spam
Recognize NiBSAnimationNode as a record type

And don't warn about animated nodes without textkeys
Fix the particle quota