Helper around creating vertex attributes in a given [[VertexBuffer]], this is useful for describing the memory layout for your vertices inside a particular buffer
Note: This helper assumes interleaved attributes in one [[VertexBuffer]], not many.
gl.vertexAttribPointer can be tricky, and this attempts to double check you
Total number of bytes that the vertex will take up
Layouts need shader locations and must be bound to a shader
Bind this layout with it's associated vertex buffer
Optionally indicate you wish to upload the buffer to the GPU associated with this layout