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.