Decode all weights in GBufferGroup

Previously, there could be a variable number of weights. This introduced a
loop in the skinning code that profiling revealed to be a slow point.
Furthermore, the final weight was calculated each frame. Now, we store all
weights in the decoded buffer, even those that are zero and the calculated
weight.
Slightly better dest buf handling
Cleanup macro-mayhem

This converts the VERTBLEND macros to some clever templates. This code
should be much more maintainable.
Fill volatile buffers

This shaves off a memcpy and some smaller copies. Decent gains that scale
up quite well as more avatars are on screen.