Vertex data packing optimization

This addresses https://github.com/xeolabs/scenejs/issues/100

This involves a bit more tradeoffs than the other optimizations I uploaded so far, since the implementation ended up a bit ugly to support the setPositions etc. functions, but in the case of unchanging vertex data this is a nice optimization that helps both CPU and GPU. Please check if I missed some other case where the interleavedBuf should be dirtied or destroyed.