Move floats around when needed to accomodate vec3 arrays efficiently. With this we use slightly less memory when possible. Basically vec3s are not treated as vec4 unless we have no float to use for padding). Reviewers: fclem, sergey Differential Revision: https://developer.blender.org/D2800